/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: org/jbpm/flow/serialization/protobuf/kogito_node_instance_contents.proto

// Protobuf Java Version: 3.25.5
package org.jbpm.flow.serialization.protobuf;

public final class KogitoNodeInstanceContentsProtobuf {
    private KogitoNodeInstanceContentsProtobuf() {
    }

    public static void registerAllExtensions(
            com.google.protobuf.ExtensionRegistryLite registry) {
    }

    public static void registerAllExtensions(
            com.google.protobuf.ExtensionRegistry registry) {
        registerAllExtensions(
                (com.google.protobuf.ExtensionRegistryLite) registry);
    }

    public interface RuleSetNodeInstanceContentOrBuilder extends
            // @@protoc_insertion_point(interface_extends:org.jbpm.flow.serialization.protobuf.RuleSetNodeInstanceContent)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.String>
                getTimerInstanceIdList();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        java.lang.String getTimerInstanceId(int index);

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index);

        /**
         * <code>optional string rule_flow_group = 2;</code>
         * 
         * @return Whether the ruleFlowGroup field is set.
         */
        boolean hasRuleFlowGroup();

        /**
         * <code>optional string rule_flow_group = 2;</code>
         * 
         * @return The ruleFlowGroup.
         */
        java.lang.String getRuleFlowGroup();

        /**
         * <code>optional string rule_flow_group = 2;</code>
         * 
         * @return The bytes for ruleFlowGroup.
         */
        com.google.protobuf.ByteString
                getRuleFlowGroupBytes();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        int getTimerInstanceReferenceCount();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        boolean containsTimerInstanceReference(
                java.lang.String key);

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Deprecated
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReference();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReferenceMap();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue);

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key);
    }

    /**
     * Protobuf type {@code org.jbpm.flow.serialization.protobuf.RuleSetNodeInstanceContent}
     */
    public static final class RuleSetNodeInstanceContent extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:org.jbpm.flow.serialization.protobuf.RuleSetNodeInstanceContent)
            RuleSetNodeInstanceContentOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use RuleSetNodeInstanceContent.newBuilder() to construct.
        private RuleSetNodeInstanceContent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private RuleSetNodeInstanceContent() {
            timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();
            ruleFlowGroup_ = "";
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(
                UnusedPrivateParameter unused) {
            return new RuleSetNodeInstanceContent();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_RuleSetNodeInstanceContent_descriptor;
        }

        @SuppressWarnings({ "rawtypes" })
        @java.lang.Override
        protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                int number) {
            switch (number) {
                case 3:
                    return internalGetTimerInstanceReference();
                default:
                    throw new RuntimeException(
                            "Invalid map field number: " + number);
            }
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_RuleSetNodeInstanceContent_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent.class,
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent.Builder.class);
        }

        private int bitField0_;
        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                com.google.protobuf.LazyStringArrayList.emptyList();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        public com.google.protobuf.ProtocolStringList
                getTimerInstanceIdList() {
            return timerInstanceId_;
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public java.lang.String getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        public com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index) {
            return timerInstanceId_.getByteString(index);
        }

        public static final int RULE_FLOW_GROUP_FIELD_NUMBER = 2;
        @SuppressWarnings("serial")
        private volatile java.lang.Object ruleFlowGroup_ = "";

        /**
         * <code>optional string rule_flow_group = 2;</code>
         * 
         * @return Whether the ruleFlowGroup field is set.
         */
        @java.lang.Override
        public boolean hasRuleFlowGroup() {
            return ((bitField0_ & 0x00000001) != 0);
        }

        /**
         * <code>optional string rule_flow_group = 2;</code>
         * 
         * @return The ruleFlowGroup.
         */
        @java.lang.Override
        public java.lang.String getRuleFlowGroup() {
            java.lang.Object ref = ruleFlowGroup_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                ruleFlowGroup_ = s;
                return s;
            }
        }

        /**
         * <code>optional string rule_flow_group = 2;</code>
         * 
         * @return The bytes for ruleFlowGroup.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
                getRuleFlowGroupBytes() {
            java.lang.Object ref = ruleFlowGroup_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (java.lang.String) ref);
                ruleFlowGroup_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int TIMER_INSTANCE_REFERENCE_FIELD_NUMBER = 3;

        private static final class TimerInstanceReferenceDefaultEntryHolder {
            static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
                    com.google.protobuf.MapEntry.<java.lang.String, java.lang.String> newDefaultInstance(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_RuleSetNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "",
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "");
        }

        @SuppressWarnings("serial")
        private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

        private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                internalGetTimerInstanceReference() {
            if (timerInstanceReference_ == null) {
                return com.google.protobuf.MapField.emptyMapField(
                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
            }
            return timerInstanceReference_;
        }

        public int getTimerInstanceReferenceCount() {
            return internalGetTimerInstanceReference().getMap().size();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public boolean containsTimerInstanceReference(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            return internalGetTimerInstanceReference().getMap().containsKey(key);
        }

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Override
        @java.lang.Deprecated
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
            return getTimerInstanceReferenceMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
            return internalGetTimerInstanceReference().getMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            return map.containsKey(key) ? map.get(key) : defaultValue;
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            if (!map.containsKey(key)) {
                throw new java.lang.IllegalArgumentException();
            }
            return map.get(key);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            for (int i = 0; i < timerInstanceId_.size(); i++) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, timerInstanceId_.getRaw(i));
            }
            if (((bitField0_ & 0x00000001) != 0)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 2, ruleFlowGroup_);
            }
            com.google.protobuf.GeneratedMessageV3
                    .serializeStringMapTo(
                            output,
                            internalGetTimerInstanceReference(),
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry,
                            3);
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;

            size = 0;
            {
                int dataSize = 0;
                for (int i = 0; i < timerInstanceId_.size(); i++) {
                    dataSize += computeStringSizeNoTag(timerInstanceId_.getRaw(i));
                }
                size += dataSize;
                size += 1 * getTimerInstanceIdList().size();
            }
            if (((bitField0_ & 0x00000001) != 0)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, ruleFlowGroup_);
            }
            for (java.util.Map.Entry<java.lang.String, java.lang.String> entry : internalGetTimerInstanceReference().getMap().entrySet()) {
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = TimerInstanceReferenceDefaultEntryHolder.defaultEntry.newBuilderForType()
                        .setKey(entry.getKey())
                        .setValue(entry.getValue())
                        .build();
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(3, timerInstanceReference__);
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent)) {
                return super.equals(obj);
            }
            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent other =
                    (org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent) obj;

            if (!getTimerInstanceIdList()
                    .equals(other.getTimerInstanceIdList()))
                return false;
            if (hasRuleFlowGroup() != other.hasRuleFlowGroup())
                return false;
            if (hasRuleFlowGroup()) {
                if (!getRuleFlowGroup()
                        .equals(other.getRuleFlowGroup()))
                    return false;
            }
            if (!internalGetTimerInstanceReference().equals(
                    other.internalGetTimerInstanceReference()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (getTimerInstanceIdCount() > 0) {
                hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getTimerInstanceIdList().hashCode();
            }
            if (hasRuleFlowGroup()) {
                hash = (37 * hash) + RULE_FLOW_GROUP_FIELD_NUMBER;
                hash = (53 * hash) + getRuleFlowGroup().hashCode();
            }
            if (!internalGetTimerInstanceReference().getMap().isEmpty()) {
                hash = (37 * hash) + TIMER_INSTANCE_REFERENCE_FIELD_NUMBER;
                hash = (53 * hash) + internalGetTimerInstanceReference().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder()
                    : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.jbpm.flow.serialization.protobuf.RuleSetNodeInstanceContent}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:org.jbpm.flow.serialization.protobuf.RuleSetNodeInstanceContent)
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContentOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                    getDescriptor() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_RuleSetNodeInstanceContent_descriptor;
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                    int number) {
                switch (number) {
                    case 3:
                        return internalGetTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
                    int number) {
                switch (number) {
                    case 3:
                        return internalGetMutableTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_RuleSetNodeInstanceContent_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent.class,
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent.Builder.class);
            }

            // Construct using org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent.newBuilder()
            private Builder() {

            }

            private Builder(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);

            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                ruleFlowGroup_ = "";
                internalGetMutableTimerInstanceReference().clear();
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
                    getDescriptorForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_RuleSetNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent getDefaultInstanceForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent.getDefaultInstance();
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent build() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent buildPartial() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent result =
                        new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    timerInstanceId_.makeImmutable();
                    result.timerInstanceId_ = timerInstanceId_;
                }
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.ruleFlowGroup_ = ruleFlowGroup_;
                    to_bitField0_ |= 0x00000001;
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.timerInstanceReference_ = internalGetTimerInstanceReference();
                    result.timerInstanceReference_.makeImmutable();
                }
                result.bitField0_ |= to_bitField0_;
            }

            @java.lang.Override
            public Builder clone() {
                return super.clone();
            }

            @java.lang.Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.setField(field, value);
            }

            @java.lang.Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @java.lang.Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @java.lang.Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, java.lang.Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @java.lang.Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.addRepeatedField(field, value);
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent) {
                    return mergeFrom((org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent other) {
                if (other == org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent.getDefaultInstance())
                    return this;
                if (!other.timerInstanceId_.isEmpty()) {
                    if (timerInstanceId_.isEmpty()) {
                        timerInstanceId_ = other.timerInstanceId_;
                        bitField0_ |= 0x00000001;
                    } else {
                        ensureTimerInstanceIdIsMutable();
                        timerInstanceId_.addAll(other.timerInstanceId_);
                    }
                    onChanged();
                }
                if (other.hasRuleFlowGroup()) {
                    ruleFlowGroup_ = other.ruleFlowGroup_;
                    bitField0_ |= 0x00000002;
                    onChanged();
                }
                internalGetMutableTimerInstanceReference().mergeFrom(
                        other.internalGetTimerInstanceReference());
                bitField0_ |= 0x00000004;
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                java.lang.String s = input.readStringRequireUtf8();
                                ensureTimerInstanceIdIsMutable();
                                timerInstanceId_.add(s);
                                break;
                            } // case 10
                            case 18: {
                                ruleFlowGroup_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00000002;
                                break;
                            } // case 18
                            case 26: {
                                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = input.readMessage(
                                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                                internalGetMutableTimerInstanceReference().getMutableMap().put(
                                        timerInstanceReference__.getKey(), timerInstanceReference__.getValue());
                                bitField0_ |= 0x00000004;
                                break;
                            } // case 26
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }

            private int bitField0_;

            private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();

            private void ensureTimerInstanceIdIsMutable() {
                if (!timerInstanceId_.isModifiable()) {
                    timerInstanceId_ = new com.google.protobuf.LazyStringArrayList(timerInstanceId_);
                }
                bitField0_ |= 0x00000001;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return A list containing the timerInstanceId.
             */
            public com.google.protobuf.ProtocolStringList
                    getTimerInstanceIdList() {
                timerInstanceId_.makeImmutable();
                return timerInstanceId_;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return The count of timerInstanceId.
             */
            public int getTimerInstanceIdCount() {
                return timerInstanceId_.size();
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index of the element to return.
             * @return The timerInstanceId at the given index.
             */
            public java.lang.String getTimerInstanceId(int index) {
                return timerInstanceId_.get(index);
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index of the value to return.
             * @return The bytes of the timerInstanceId at the given index.
             */
            public com.google.protobuf.ByteString
                    getTimerInstanceIdBytes(int index) {
                return timerInstanceId_.getByteString(index);
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index to set the value at.
             * @param value The timerInstanceId to set.
             * @return This builder for chaining.
             */
            public Builder setTimerInstanceId(
                    int index, java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.set(index, value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param value The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param values The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addAllTimerInstanceId(
                    java.lang.Iterable<java.lang.String> values) {
                ensureTimerInstanceIdIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(
                        values, timerInstanceId_);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearTimerInstanceId() {
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                bitField0_ = (bitField0_ & ~0x00000001);
                ;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param value The bytes of the timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            private java.lang.Object ruleFlowGroup_ = "";

            /**
             * <code>optional string rule_flow_group = 2;</code>
             * 
             * @return Whether the ruleFlowGroup field is set.
             */
            public boolean hasRuleFlowGroup() {
                return ((bitField0_ & 0x00000002) != 0);
            }

            /**
             * <code>optional string rule_flow_group = 2;</code>
             * 
             * @return The ruleFlowGroup.
             */
            public java.lang.String getRuleFlowGroup() {
                java.lang.Object ref = ruleFlowGroup_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    ruleFlowGroup_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>optional string rule_flow_group = 2;</code>
             * 
             * @return The bytes for ruleFlowGroup.
             */
            public com.google.protobuf.ByteString
                    getRuleFlowGroupBytes() {
                java.lang.Object ref = ruleFlowGroup_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    ruleFlowGroup_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>optional string rule_flow_group = 2;</code>
             * 
             * @param value The ruleFlowGroup to set.
             * @return This builder for chaining.
             */
            public Builder setRuleFlowGroup(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ruleFlowGroup_ = value;
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>optional string rule_flow_group = 2;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearRuleFlowGroup() {
                ruleFlowGroup_ = getDefaultInstance().getRuleFlowGroup();
                bitField0_ = (bitField0_ & ~0x00000002);
                onChanged();
                return this;
            }

            /**
             * <code>optional string rule_flow_group = 2;</code>
             * 
             * @param value The bytes for ruleFlowGroup to set.
             * @return This builder for chaining.
             */
            public Builder setRuleFlowGroupBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                ruleFlowGroup_ = value;
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    return com.google.protobuf.MapField.emptyMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                return timerInstanceReference_;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetMutableTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    timerInstanceReference_ = com.google.protobuf.MapField.newMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                if (!timerInstanceReference_.isMutable()) {
                    timerInstanceReference_ = timerInstanceReference_.copy();
                }
                bitField0_ |= 0x00000004;
                onChanged();
                return timerInstanceReference_;
            }

            public int getTimerInstanceReferenceCount() {
                return internalGetTimerInstanceReference().getMap().size();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public boolean containsTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                return internalGetTimerInstanceReference().getMap().containsKey(key);
            }

            /**
             * Use {@link #getTimerInstanceReferenceMap()} instead.
             */
            @java.lang.Override
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
                return getTimerInstanceReferenceMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
                return internalGetTimerInstanceReference().getMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public /* nullable */
            java.lang.String getTimerInstanceReferenceOrDefault(
                    java.lang.String key,
                    /* nullable */
                    java.lang.String defaultValue) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                return map.containsKey(key) ? map.get(key) : defaultValue;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public java.lang.String getTimerInstanceReferenceOrThrow(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                if (!map.containsKey(key)) {
                    throw new java.lang.IllegalArgumentException();
                }
                return map.get(key);
            }

            public Builder clearTimerInstanceReference() {
                bitField0_ = (bitField0_ & ~0x00000004);
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .clear();
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder removeTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .remove(key);
                return this;
            }

            /**
             * Use alternate mutation accessors instead.
             */
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String>
                    getMutableTimerInstanceReference() {
                bitField0_ |= 0x00000004;
                return internalGetMutableTimerInstanceReference().getMutableMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder putTimerInstanceReference(
                    java.lang.String key,
                    java.lang.String value) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                if (value == null) {
                    throw new NullPointerException("map value");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .put(key, value);
                bitField0_ |= 0x00000004;
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder putAllTimerInstanceReference(
                    java.util.Map<java.lang.String, java.lang.String> values) {
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .putAll(values);
                bitField0_ |= 0x00000004;
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }

            // @@protoc_insertion_point(builder_scope:org.jbpm.flow.serialization.protobuf.RuleSetNodeInstanceContent)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.flow.serialization.protobuf.RuleSetNodeInstanceContent)
        private static final org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent();
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<RuleSetNodeInstanceContent> PARSER = new com.google.protobuf.AbstractParser<RuleSetNodeInstanceContent>() {
            @java.lang.Override
            public RuleSetNodeInstanceContent parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e)
                            .setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<RuleSetNodeInstanceContent> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<RuleSetNodeInstanceContent> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.RuleSetNodeInstanceContent getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface WorkItemNodeInstanceContentOrBuilder extends
            // @@protoc_insertion_point(interface_extends:org.jbpm.flow.serialization.protobuf.WorkItemNodeInstanceContent)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>string work_item_id = 1;</code>
         * 
         * @return The workItemId.
         */
        java.lang.String getWorkItemId();

        /**
         * <code>string work_item_id = 1;</code>
         * 
         * @return The bytes for workItemId.
         */
        com.google.protobuf.ByteString
                getWorkItemIdBytes();

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.String>
                getTimerInstanceIdList();

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        java.lang.String getTimerInstanceId(int index);

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index);

        /**
         * <code>optional string error_handling_process_instance_id = 3;</code>
         * 
         * @return Whether the errorHandlingProcessInstanceId field is set.
         */
        boolean hasErrorHandlingProcessInstanceId();

        /**
         * <code>optional string error_handling_process_instance_id = 3;</code>
         * 
         * @return The errorHandlingProcessInstanceId.
         */
        java.lang.String getErrorHandlingProcessInstanceId();

        /**
         * <code>optional string error_handling_process_instance_id = 3;</code>
         * 
         * @return The bytes for errorHandlingProcessInstanceId.
         */
        com.google.protobuf.ByteString
                getErrorHandlingProcessInstanceIdBytes();

        /**
         * <pre>
         * work item data
         * </pre>
         *
         * <code>int32 state = 4;</code>
         * 
         * @return The state.
         */
        int getState();

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
         */
        java.util.List<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable>
                getVariableList();

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
         */
        org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable getVariable(int index);

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
         */
        int getVariableCount();

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
         */
        java.util.List<? extends org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder>
                getVariableOrBuilderList();

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
         */
        org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder getVariableOrBuilder(
                int index);

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
         */
        java.util.List<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable>
                getResultList();

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
         */
        org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable getResult(int index);

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
         */
        int getResultCount();

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
         */
        java.util.List<? extends org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder>
                getResultOrBuilderList();

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
         */
        org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder getResultOrBuilder(
                int index);

        /**
         * <code>optional string phase_id = 7;</code>
         * 
         * @return Whether the phaseId field is set.
         */
        boolean hasPhaseId();

        /**
         * <code>optional string phase_id = 7;</code>
         * 
         * @return The phaseId.
         */
        java.lang.String getPhaseId();

        /**
         * <code>optional string phase_id = 7;</code>
         * 
         * @return The bytes for phaseId.
         */
        com.google.protobuf.ByteString
                getPhaseIdBytes();

        /**
         * <code>optional string phase_status = 8;</code>
         * 
         * @return Whether the phaseStatus field is set.
         */
        boolean hasPhaseStatus();

        /**
         * <code>optional string phase_status = 8;</code>
         * 
         * @return The phaseStatus.
         */
        java.lang.String getPhaseStatus();

        /**
         * <code>optional string phase_status = 8;</code>
         * 
         * @return The bytes for phaseStatus.
         */
        com.google.protobuf.ByteString
                getPhaseStatusBytes();

        /**
         * <code>optional string name = 9;</code>
         * 
         * @return Whether the name field is set.
         */
        boolean hasName();

        /**
         * <code>optional string name = 9;</code>
         * 
         * @return The name.
         */
        java.lang.String getName();

        /**
         * <code>optional string name = 9;</code>
         * 
         * @return The bytes for name.
         */
        com.google.protobuf.ByteString
                getNameBytes();

        /**
         * <code>optional int64 start_date = 10;</code>
         * 
         * @return Whether the startDate field is set.
         */
        boolean hasStartDate();

        /**
         * <code>optional int64 start_date = 10;</code>
         * 
         * @return The startDate.
         */
        long getStartDate();

        /**
         * <code>optional int64 complete_date = 11;</code>
         * 
         * @return Whether the completeDate field is set.
         */
        boolean hasCompleteDate();

        /**
         * <code>optional int64 complete_date = 11;</code>
         * 
         * @return The completeDate.
         */
        long getCompleteDate();

        /**
         * <code>optional .google.protobuf.Any work_item_data = 12;</code>
         * 
         * @return Whether the workItemData field is set.
         */
        boolean hasWorkItemData();

        /**
         * <code>optional .google.protobuf.Any work_item_data = 12;</code>
         * 
         * @return The workItemData.
         */
        com.google.protobuf.Any getWorkItemData();

        /**
         * <code>optional .google.protobuf.Any work_item_data = 12;</code>
         */
        com.google.protobuf.AnyOrBuilder getWorkItemDataOrBuilder();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 13;</code>
         */
        int getTimerInstanceReferenceCount();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 13;</code>
         */
        boolean containsTimerInstanceReference(
                java.lang.String key);

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Deprecated
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReference();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 13;</code>
         */
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReferenceMap();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 13;</code>
         */
        /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue);

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 13;</code>
         */
        java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key);

        /**
         * <code>optional string actual_owner = 14;</code>
         * 
         * @return Whether the actualOwner field is set.
         */
        boolean hasActualOwner();

        /**
         * <code>optional string actual_owner = 14;</code>
         * 
         * @return The actualOwner.
         */
        java.lang.String getActualOwner();

        /**
         * <code>optional string actual_owner = 14;</code>
         * 
         * @return The bytes for actualOwner.
         */
        com.google.protobuf.ByteString
                getActualOwnerBytes();

        /**
         * <code>optional string external_reference_id = 15;</code>
         * 
         * @return Whether the externalReferenceId field is set.
         */
        boolean hasExternalReferenceId();

        /**
         * <code>optional string external_reference_id = 15;</code>
         * 
         * @return The externalReferenceId.
         */
        java.lang.String getExternalReferenceId();

        /**
         * <code>optional string external_reference_id = 15;</code>
         * 
         * @return The bytes for externalReferenceId.
         */
        com.google.protobuf.ByteString
                getExternalReferenceIdBytes();
    }

    /**
     * Protobuf type {@code org.jbpm.flow.serialization.protobuf.WorkItemNodeInstanceContent}
     */
    public static final class WorkItemNodeInstanceContent extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:org.jbpm.flow.serialization.protobuf.WorkItemNodeInstanceContent)
            WorkItemNodeInstanceContentOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use WorkItemNodeInstanceContent.newBuilder() to construct.
        private WorkItemNodeInstanceContent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private WorkItemNodeInstanceContent() {
            workItemId_ = "";
            timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();
            errorHandlingProcessInstanceId_ = "";
            variable_ = java.util.Collections.emptyList();
            result_ = java.util.Collections.emptyList();
            phaseId_ = "";
            phaseStatus_ = "";
            name_ = "";
            actualOwner_ = "";
            externalReferenceId_ = "";
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(
                UnusedPrivateParameter unused) {
            return new WorkItemNodeInstanceContent();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_WorkItemNodeInstanceContent_descriptor;
        }

        @SuppressWarnings({ "rawtypes" })
        @java.lang.Override
        protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                int number) {
            switch (number) {
                case 13:
                    return internalGetTimerInstanceReference();
                default:
                    throw new RuntimeException(
                            "Invalid map field number: " + number);
            }
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_WorkItemNodeInstanceContent_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent.class,
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent.Builder.class);
        }

        private int bitField0_;
        public static final int WORK_ITEM_ID_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private volatile java.lang.Object workItemId_ = "";

        /**
         * <code>string work_item_id = 1;</code>
         * 
         * @return The workItemId.
         */
        @java.lang.Override
        public java.lang.String getWorkItemId() {
            java.lang.Object ref = workItemId_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                workItemId_ = s;
                return s;
            }
        }

        /**
         * <code>string work_item_id = 1;</code>
         * 
         * @return The bytes for workItemId.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
                getWorkItemIdBytes() {
            java.lang.Object ref = workItemId_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (java.lang.String) ref);
                workItemId_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 2;
        @SuppressWarnings("serial")
        private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                com.google.protobuf.LazyStringArrayList.emptyList();

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        public com.google.protobuf.ProtocolStringList
                getTimerInstanceIdList() {
            return timerInstanceId_;
        }

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
        }

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public java.lang.String getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
        }

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        public com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index) {
            return timerInstanceId_.getByteString(index);
        }

        public static final int ERROR_HANDLING_PROCESS_INSTANCE_ID_FIELD_NUMBER = 3;
        @SuppressWarnings("serial")
        private volatile java.lang.Object errorHandlingProcessInstanceId_ = "";

        /**
         * <code>optional string error_handling_process_instance_id = 3;</code>
         * 
         * @return Whether the errorHandlingProcessInstanceId field is set.
         */
        @java.lang.Override
        public boolean hasErrorHandlingProcessInstanceId() {
            return ((bitField0_ & 0x00000001) != 0);
        }

        /**
         * <code>optional string error_handling_process_instance_id = 3;</code>
         * 
         * @return The errorHandlingProcessInstanceId.
         */
        @java.lang.Override
        public java.lang.String getErrorHandlingProcessInstanceId() {
            java.lang.Object ref = errorHandlingProcessInstanceId_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                errorHandlingProcessInstanceId_ = s;
                return s;
            }
        }

        /**
         * <code>optional string error_handling_process_instance_id = 3;</code>
         * 
         * @return The bytes for errorHandlingProcessInstanceId.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
                getErrorHandlingProcessInstanceIdBytes() {
            java.lang.Object ref = errorHandlingProcessInstanceId_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (java.lang.String) ref);
                errorHandlingProcessInstanceId_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int STATE_FIELD_NUMBER = 4;
        private int state_ = 0;

        /**
         * <pre>
         * work item data
         * </pre>
         *
         * <code>int32 state = 4;</code>
         * 
         * @return The state.
         */
        @java.lang.Override
        public int getState() {
            return state_;
        }

        public static final int VARIABLE_FIELD_NUMBER = 5;
        @SuppressWarnings("serial")
        private java.util.List<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable> variable_;

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
         */
        @java.lang.Override
        public java.util.List<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable> getVariableList() {
            return variable_;
        }

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
         */
        @java.lang.Override
        public java.util.List<? extends org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder>
                getVariableOrBuilderList() {
            return variable_;
        }

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
         */
        @java.lang.Override
        public int getVariableCount() {
            return variable_.size();
        }

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
         */
        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable getVariable(int index) {
            return variable_.get(index);
        }

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
         */
        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder getVariableOrBuilder(
                int index) {
            return variable_.get(index);
        }

        public static final int RESULT_FIELD_NUMBER = 6;
        @SuppressWarnings("serial")
        private java.util.List<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable> result_;

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
         */
        @java.lang.Override
        public java.util.List<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable> getResultList() {
            return result_;
        }

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
         */
        @java.lang.Override
        public java.util.List<? extends org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder>
                getResultOrBuilderList() {
            return result_;
        }

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
         */
        @java.lang.Override
        public int getResultCount() {
            return result_.size();
        }

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
         */
        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable getResult(int index) {
            return result_.get(index);
        }

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
         */
        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder getResultOrBuilder(
                int index) {
            return result_.get(index);
        }

        public static final int PHASE_ID_FIELD_NUMBER = 7;
        @SuppressWarnings("serial")
        private volatile java.lang.Object phaseId_ = "";

        /**
         * <code>optional string phase_id = 7;</code>
         * 
         * @return Whether the phaseId field is set.
         */
        @java.lang.Override
        public boolean hasPhaseId() {
            return ((bitField0_ & 0x00000002) != 0);
        }

        /**
         * <code>optional string phase_id = 7;</code>
         * 
         * @return The phaseId.
         */
        @java.lang.Override
        public java.lang.String getPhaseId() {
            java.lang.Object ref = phaseId_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                phaseId_ = s;
                return s;
            }
        }

        /**
         * <code>optional string phase_id = 7;</code>
         * 
         * @return The bytes for phaseId.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
                getPhaseIdBytes() {
            java.lang.Object ref = phaseId_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (java.lang.String) ref);
                phaseId_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int PHASE_STATUS_FIELD_NUMBER = 8;
        @SuppressWarnings("serial")
        private volatile java.lang.Object phaseStatus_ = "";

        /**
         * <code>optional string phase_status = 8;</code>
         * 
         * @return Whether the phaseStatus field is set.
         */
        @java.lang.Override
        public boolean hasPhaseStatus() {
            return ((bitField0_ & 0x00000004) != 0);
        }

        /**
         * <code>optional string phase_status = 8;</code>
         * 
         * @return The phaseStatus.
         */
        @java.lang.Override
        public java.lang.String getPhaseStatus() {
            java.lang.Object ref = phaseStatus_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                phaseStatus_ = s;
                return s;
            }
        }

        /**
         * <code>optional string phase_status = 8;</code>
         * 
         * @return The bytes for phaseStatus.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
                getPhaseStatusBytes() {
            java.lang.Object ref = phaseStatus_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (java.lang.String) ref);
                phaseStatus_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int NAME_FIELD_NUMBER = 9;
        @SuppressWarnings("serial")
        private volatile java.lang.Object name_ = "";

        /**
         * <code>optional string name = 9;</code>
         * 
         * @return Whether the name field is set.
         */
        @java.lang.Override
        public boolean hasName() {
            return ((bitField0_ & 0x00000008) != 0);
        }

        /**
         * <code>optional string name = 9;</code>
         * 
         * @return The name.
         */
        @java.lang.Override
        public java.lang.String getName() {
            java.lang.Object ref = name_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                name_ = s;
                return s;
            }
        }

        /**
         * <code>optional string name = 9;</code>
         * 
         * @return The bytes for name.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
                getNameBytes() {
            java.lang.Object ref = name_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (java.lang.String) ref);
                name_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int START_DATE_FIELD_NUMBER = 10;
        private long startDate_ = 0L;

        /**
         * <code>optional int64 start_date = 10;</code>
         * 
         * @return Whether the startDate field is set.
         */
        @java.lang.Override
        public boolean hasStartDate() {
            return ((bitField0_ & 0x00000010) != 0);
        }

        /**
         * <code>optional int64 start_date = 10;</code>
         * 
         * @return The startDate.
         */
        @java.lang.Override
        public long getStartDate() {
            return startDate_;
        }

        public static final int COMPLETE_DATE_FIELD_NUMBER = 11;
        private long completeDate_ = 0L;

        /**
         * <code>optional int64 complete_date = 11;</code>
         * 
         * @return Whether the completeDate field is set.
         */
        @java.lang.Override
        public boolean hasCompleteDate() {
            return ((bitField0_ & 0x00000020) != 0);
        }

        /**
         * <code>optional int64 complete_date = 11;</code>
         * 
         * @return The completeDate.
         */
        @java.lang.Override
        public long getCompleteDate() {
            return completeDate_;
        }

        public static final int WORK_ITEM_DATA_FIELD_NUMBER = 12;
        private com.google.protobuf.Any workItemData_;

        /**
         * <code>optional .google.protobuf.Any work_item_data = 12;</code>
         * 
         * @return Whether the workItemData field is set.
         */
        @java.lang.Override
        public boolean hasWorkItemData() {
            return ((bitField0_ & 0x00000040) != 0);
        }

        /**
         * <code>optional .google.protobuf.Any work_item_data = 12;</code>
         * 
         * @return The workItemData.
         */
        @java.lang.Override
        public com.google.protobuf.Any getWorkItemData() {
            return workItemData_ == null ? com.google.protobuf.Any.getDefaultInstance() : workItemData_;
        }

        /**
         * <code>optional .google.protobuf.Any work_item_data = 12;</code>
         */
        @java.lang.Override
        public com.google.protobuf.AnyOrBuilder getWorkItemDataOrBuilder() {
            return workItemData_ == null ? com.google.protobuf.Any.getDefaultInstance() : workItemData_;
        }

        public static final int TIMER_INSTANCE_REFERENCE_FIELD_NUMBER = 13;

        private static final class TimerInstanceReferenceDefaultEntryHolder {
            static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
                    com.google.protobuf.MapEntry.<java.lang.String, java.lang.String> newDefaultInstance(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_WorkItemNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "",
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "");
        }

        @SuppressWarnings("serial")
        private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

        private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                internalGetTimerInstanceReference() {
            if (timerInstanceReference_ == null) {
                return com.google.protobuf.MapField.emptyMapField(
                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
            }
            return timerInstanceReference_;
        }

        public int getTimerInstanceReferenceCount() {
            return internalGetTimerInstanceReference().getMap().size();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 13;</code>
         */
        @java.lang.Override
        public boolean containsTimerInstanceReference(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            return internalGetTimerInstanceReference().getMap().containsKey(key);
        }

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Override
        @java.lang.Deprecated
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
            return getTimerInstanceReferenceMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 13;</code>
         */
        @java.lang.Override
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
            return internalGetTimerInstanceReference().getMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 13;</code>
         */
        @java.lang.Override
        public /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            return map.containsKey(key) ? map.get(key) : defaultValue;
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 13;</code>
         */
        @java.lang.Override
        public java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            if (!map.containsKey(key)) {
                throw new java.lang.IllegalArgumentException();
            }
            return map.get(key);
        }

        public static final int ACTUAL_OWNER_FIELD_NUMBER = 14;
        @SuppressWarnings("serial")
        private volatile java.lang.Object actualOwner_ = "";

        /**
         * <code>optional string actual_owner = 14;</code>
         * 
         * @return Whether the actualOwner field is set.
         */
        @java.lang.Override
        public boolean hasActualOwner() {
            return ((bitField0_ & 0x00000080) != 0);
        }

        /**
         * <code>optional string actual_owner = 14;</code>
         * 
         * @return The actualOwner.
         */
        @java.lang.Override
        public java.lang.String getActualOwner() {
            java.lang.Object ref = actualOwner_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                actualOwner_ = s;
                return s;
            }
        }

        /**
         * <code>optional string actual_owner = 14;</code>
         * 
         * @return The bytes for actualOwner.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
                getActualOwnerBytes() {
            java.lang.Object ref = actualOwner_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (java.lang.String) ref);
                actualOwner_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int EXTERNAL_REFERENCE_ID_FIELD_NUMBER = 15;
        @SuppressWarnings("serial")
        private volatile java.lang.Object externalReferenceId_ = "";

        /**
         * <code>optional string external_reference_id = 15;</code>
         * 
         * @return Whether the externalReferenceId field is set.
         */
        @java.lang.Override
        public boolean hasExternalReferenceId() {
            return ((bitField0_ & 0x00000100) != 0);
        }

        /**
         * <code>optional string external_reference_id = 15;</code>
         * 
         * @return The externalReferenceId.
         */
        @java.lang.Override
        public java.lang.String getExternalReferenceId() {
            java.lang.Object ref = externalReferenceId_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                externalReferenceId_ = s;
                return s;
            }
        }

        /**
         * <code>optional string external_reference_id = 15;</code>
         * 
         * @return The bytes for externalReferenceId.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
                getExternalReferenceIdBytes() {
            java.lang.Object ref = externalReferenceId_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (java.lang.String) ref);
                externalReferenceId_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(workItemId_)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, workItemId_);
            }
            for (int i = 0; i < timerInstanceId_.size(); i++) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 2, timerInstanceId_.getRaw(i));
            }
            if (((bitField0_ & 0x00000001) != 0)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 3, errorHandlingProcessInstanceId_);
            }
            if (state_ != 0) {
                output.writeInt32(4, state_);
            }
            for (int i = 0; i < variable_.size(); i++) {
                output.writeMessage(5, variable_.get(i));
            }
            for (int i = 0; i < result_.size(); i++) {
                output.writeMessage(6, result_.get(i));
            }
            if (((bitField0_ & 0x00000002) != 0)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 7, phaseId_);
            }
            if (((bitField0_ & 0x00000004) != 0)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 8, phaseStatus_);
            }
            if (((bitField0_ & 0x00000008) != 0)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 9, name_);
            }
            if (((bitField0_ & 0x00000010) != 0)) {
                output.writeInt64(10, startDate_);
            }
            if (((bitField0_ & 0x00000020) != 0)) {
                output.writeInt64(11, completeDate_);
            }
            if (((bitField0_ & 0x00000040) != 0)) {
                output.writeMessage(12, getWorkItemData());
            }
            com.google.protobuf.GeneratedMessageV3
                    .serializeStringMapTo(
                            output,
                            internalGetTimerInstanceReference(),
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry,
                            13);
            if (((bitField0_ & 0x00000080) != 0)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 14, actualOwner_);
            }
            if (((bitField0_ & 0x00000100) != 0)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 15, externalReferenceId_);
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;

            size = 0;
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(workItemId_)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, workItemId_);
            }
            {
                int dataSize = 0;
                for (int i = 0; i < timerInstanceId_.size(); i++) {
                    dataSize += computeStringSizeNoTag(timerInstanceId_.getRaw(i));
                }
                size += dataSize;
                size += 1 * getTimerInstanceIdList().size();
            }
            if (((bitField0_ & 0x00000001) != 0)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, errorHandlingProcessInstanceId_);
            }
            if (state_ != 0) {
                size += com.google.protobuf.CodedOutputStream
                        .computeInt32Size(4, state_);
            }
            for (int i = 0; i < variable_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(5, variable_.get(i));
            }
            for (int i = 0; i < result_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(6, result_.get(i));
            }
            if (((bitField0_ & 0x00000002) != 0)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, phaseId_);
            }
            if (((bitField0_ & 0x00000004) != 0)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, phaseStatus_);
            }
            if (((bitField0_ & 0x00000008) != 0)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, name_);
            }
            if (((bitField0_ & 0x00000010) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                        .computeInt64Size(10, startDate_);
            }
            if (((bitField0_ & 0x00000020) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                        .computeInt64Size(11, completeDate_);
            }
            if (((bitField0_ & 0x00000040) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(12, getWorkItemData());
            }
            for (java.util.Map.Entry<java.lang.String, java.lang.String> entry : internalGetTimerInstanceReference().getMap().entrySet()) {
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = TimerInstanceReferenceDefaultEntryHolder.defaultEntry.newBuilderForType()
                        .setKey(entry.getKey())
                        .setValue(entry.getValue())
                        .build();
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(13, timerInstanceReference__);
            }
            if (((bitField0_ & 0x00000080) != 0)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, actualOwner_);
            }
            if (((bitField0_ & 0x00000100) != 0)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, externalReferenceId_);
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent)) {
                return super.equals(obj);
            }
            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent other =
                    (org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent) obj;

            if (!getWorkItemId()
                    .equals(other.getWorkItemId()))
                return false;
            if (!getTimerInstanceIdList()
                    .equals(other.getTimerInstanceIdList()))
                return false;
            if (hasErrorHandlingProcessInstanceId() != other.hasErrorHandlingProcessInstanceId())
                return false;
            if (hasErrorHandlingProcessInstanceId()) {
                if (!getErrorHandlingProcessInstanceId()
                        .equals(other.getErrorHandlingProcessInstanceId()))
                    return false;
            }
            if (getState() != other.getState())
                return false;
            if (!getVariableList()
                    .equals(other.getVariableList()))
                return false;
            if (!getResultList()
                    .equals(other.getResultList()))
                return false;
            if (hasPhaseId() != other.hasPhaseId())
                return false;
            if (hasPhaseId()) {
                if (!getPhaseId()
                        .equals(other.getPhaseId()))
                    return false;
            }
            if (hasPhaseStatus() != other.hasPhaseStatus())
                return false;
            if (hasPhaseStatus()) {
                if (!getPhaseStatus()
                        .equals(other.getPhaseStatus()))
                    return false;
            }
            if (hasName() != other.hasName())
                return false;
            if (hasName()) {
                if (!getName()
                        .equals(other.getName()))
                    return false;
            }
            if (hasStartDate() != other.hasStartDate())
                return false;
            if (hasStartDate()) {
                if (getStartDate() != other.getStartDate())
                    return false;
            }
            if (hasCompleteDate() != other.hasCompleteDate())
                return false;
            if (hasCompleteDate()) {
                if (getCompleteDate() != other.getCompleteDate())
                    return false;
            }
            if (hasWorkItemData() != other.hasWorkItemData())
                return false;
            if (hasWorkItemData()) {
                if (!getWorkItemData()
                        .equals(other.getWorkItemData()))
                    return false;
            }
            if (!internalGetTimerInstanceReference().equals(
                    other.internalGetTimerInstanceReference()))
                return false;
            if (hasActualOwner() != other.hasActualOwner())
                return false;
            if (hasActualOwner()) {
                if (!getActualOwner()
                        .equals(other.getActualOwner()))
                    return false;
            }
            if (hasExternalReferenceId() != other.hasExternalReferenceId())
                return false;
            if (hasExternalReferenceId()) {
                if (!getExternalReferenceId()
                        .equals(other.getExternalReferenceId()))
                    return false;
            }
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            hash = (37 * hash) + WORK_ITEM_ID_FIELD_NUMBER;
            hash = (53 * hash) + getWorkItemId().hashCode();
            if (getTimerInstanceIdCount() > 0) {
                hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getTimerInstanceIdList().hashCode();
            }
            if (hasErrorHandlingProcessInstanceId()) {
                hash = (37 * hash) + ERROR_HANDLING_PROCESS_INSTANCE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getErrorHandlingProcessInstanceId().hashCode();
            }
            hash = (37 * hash) + STATE_FIELD_NUMBER;
            hash = (53 * hash) + getState();
            if (getVariableCount() > 0) {
                hash = (37 * hash) + VARIABLE_FIELD_NUMBER;
                hash = (53 * hash) + getVariableList().hashCode();
            }
            if (getResultCount() > 0) {
                hash = (37 * hash) + RESULT_FIELD_NUMBER;
                hash = (53 * hash) + getResultList().hashCode();
            }
            if (hasPhaseId()) {
                hash = (37 * hash) + PHASE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getPhaseId().hashCode();
            }
            if (hasPhaseStatus()) {
                hash = (37 * hash) + PHASE_STATUS_FIELD_NUMBER;
                hash = (53 * hash) + getPhaseStatus().hashCode();
            }
            if (hasName()) {
                hash = (37 * hash) + NAME_FIELD_NUMBER;
                hash = (53 * hash) + getName().hashCode();
            }
            if (hasStartDate()) {
                hash = (37 * hash) + START_DATE_FIELD_NUMBER;
                hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                        getStartDate());
            }
            if (hasCompleteDate()) {
                hash = (37 * hash) + COMPLETE_DATE_FIELD_NUMBER;
                hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                        getCompleteDate());
            }
            if (hasWorkItemData()) {
                hash = (37 * hash) + WORK_ITEM_DATA_FIELD_NUMBER;
                hash = (53 * hash) + getWorkItemData().hashCode();
            }
            if (!internalGetTimerInstanceReference().getMap().isEmpty()) {
                hash = (37 * hash) + TIMER_INSTANCE_REFERENCE_FIELD_NUMBER;
                hash = (53 * hash) + internalGetTimerInstanceReference().hashCode();
            }
            if (hasActualOwner()) {
                hash = (37 * hash) + ACTUAL_OWNER_FIELD_NUMBER;
                hash = (53 * hash) + getActualOwner().hashCode();
            }
            if (hasExternalReferenceId()) {
                hash = (37 * hash) + EXTERNAL_REFERENCE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getExternalReferenceId().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder()
                    : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.jbpm.flow.serialization.protobuf.WorkItemNodeInstanceContent}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:org.jbpm.flow.serialization.protobuf.WorkItemNodeInstanceContent)
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContentOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                    getDescriptor() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_WorkItemNodeInstanceContent_descriptor;
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                    int number) {
                switch (number) {
                    case 13:
                        return internalGetTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
                    int number) {
                switch (number) {
                    case 13:
                        return internalGetMutableTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_WorkItemNodeInstanceContent_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent.class,
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent.Builder.class);
            }

            // Construct using org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent.newBuilder()
            private Builder() {
                maybeForceBuilderInitialization();
            }

            private Builder(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
                    getVariableFieldBuilder();
                    getResultFieldBuilder();
                    getWorkItemDataFieldBuilder();
                }
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                workItemId_ = "";
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                errorHandlingProcessInstanceId_ = "";
                state_ = 0;
                if (variableBuilder_ == null) {
                    variable_ = java.util.Collections.emptyList();
                } else {
                    variable_ = null;
                    variableBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000010);
                if (resultBuilder_ == null) {
                    result_ = java.util.Collections.emptyList();
                } else {
                    result_ = null;
                    resultBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000020);
                phaseId_ = "";
                phaseStatus_ = "";
                name_ = "";
                startDate_ = 0L;
                completeDate_ = 0L;
                workItemData_ = null;
                if (workItemDataBuilder_ != null) {
                    workItemDataBuilder_.dispose();
                    workItemDataBuilder_ = null;
                }
                internalGetMutableTimerInstanceReference().clear();
                actualOwner_ = "";
                externalReferenceId_ = "";
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
                    getDescriptorForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_WorkItemNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent getDefaultInstanceForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent.getDefaultInstance();
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent build() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent buildPartial() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent result =
                        new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent(this);
                buildPartialRepeatedFields(result);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartialRepeatedFields(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent result) {
                if (variableBuilder_ == null) {
                    if (((bitField0_ & 0x00000010) != 0)) {
                        variable_ = java.util.Collections.unmodifiableList(variable_);
                        bitField0_ = (bitField0_ & ~0x00000010);
                    }
                    result.variable_ = variable_;
                } else {
                    result.variable_ = variableBuilder_.build();
                }
                if (resultBuilder_ == null) {
                    if (((bitField0_ & 0x00000020) != 0)) {
                        result_ = java.util.Collections.unmodifiableList(result_);
                        bitField0_ = (bitField0_ & ~0x00000020);
                    }
                    result.result_ = result_;
                } else {
                    result.result_ = resultBuilder_.build();
                }
            }

            private void buildPartial0(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.workItemId_ = workItemId_;
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    timerInstanceId_.makeImmutable();
                    result.timerInstanceId_ = timerInstanceId_;
                }
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.errorHandlingProcessInstanceId_ = errorHandlingProcessInstanceId_;
                    to_bitField0_ |= 0x00000001;
                }
                if (((from_bitField0_ & 0x00000008) != 0)) {
                    result.state_ = state_;
                }
                if (((from_bitField0_ & 0x00000040) != 0)) {
                    result.phaseId_ = phaseId_;
                    to_bitField0_ |= 0x00000002;
                }
                if (((from_bitField0_ & 0x00000080) != 0)) {
                    result.phaseStatus_ = phaseStatus_;
                    to_bitField0_ |= 0x00000004;
                }
                if (((from_bitField0_ & 0x00000100) != 0)) {
                    result.name_ = name_;
                    to_bitField0_ |= 0x00000008;
                }
                if (((from_bitField0_ & 0x00000200) != 0)) {
                    result.startDate_ = startDate_;
                    to_bitField0_ |= 0x00000010;
                }
                if (((from_bitField0_ & 0x00000400) != 0)) {
                    result.completeDate_ = completeDate_;
                    to_bitField0_ |= 0x00000020;
                }
                if (((from_bitField0_ & 0x00000800) != 0)) {
                    result.workItemData_ = workItemDataBuilder_ == null
                            ? workItemData_
                            : workItemDataBuilder_.build();
                    to_bitField0_ |= 0x00000040;
                }
                if (((from_bitField0_ & 0x00001000) != 0)) {
                    result.timerInstanceReference_ = internalGetTimerInstanceReference();
                    result.timerInstanceReference_.makeImmutable();
                }
                if (((from_bitField0_ & 0x00002000) != 0)) {
                    result.actualOwner_ = actualOwner_;
                    to_bitField0_ |= 0x00000080;
                }
                if (((from_bitField0_ & 0x00004000) != 0)) {
                    result.externalReferenceId_ = externalReferenceId_;
                    to_bitField0_ |= 0x00000100;
                }
                result.bitField0_ |= to_bitField0_;
            }

            @java.lang.Override
            public Builder clone() {
                return super.clone();
            }

            @java.lang.Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.setField(field, value);
            }

            @java.lang.Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @java.lang.Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @java.lang.Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, java.lang.Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @java.lang.Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.addRepeatedField(field, value);
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent) {
                    return mergeFrom((org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent other) {
                if (other == org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent.getDefaultInstance())
                    return this;
                if (!other.getWorkItemId().isEmpty()) {
                    workItemId_ = other.workItemId_;
                    bitField0_ |= 0x00000001;
                    onChanged();
                }
                if (!other.timerInstanceId_.isEmpty()) {
                    if (timerInstanceId_.isEmpty()) {
                        timerInstanceId_ = other.timerInstanceId_;
                        bitField0_ |= 0x00000002;
                    } else {
                        ensureTimerInstanceIdIsMutable();
                        timerInstanceId_.addAll(other.timerInstanceId_);
                    }
                    onChanged();
                }
                if (other.hasErrorHandlingProcessInstanceId()) {
                    errorHandlingProcessInstanceId_ = other.errorHandlingProcessInstanceId_;
                    bitField0_ |= 0x00000004;
                    onChanged();
                }
                if (other.getState() != 0) {
                    setState(other.getState());
                }
                if (variableBuilder_ == null) {
                    if (!other.variable_.isEmpty()) {
                        if (variable_.isEmpty()) {
                            variable_ = other.variable_;
                            bitField0_ = (bitField0_ & ~0x00000010);
                        } else {
                            ensureVariableIsMutable();
                            variable_.addAll(other.variable_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.variable_.isEmpty()) {
                        if (variableBuilder_.isEmpty()) {
                            variableBuilder_.dispose();
                            variableBuilder_ = null;
                            variable_ = other.variable_;
                            bitField0_ = (bitField0_ & ~0x00000010);
                            variableBuilder_ =
                                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getVariableFieldBuilder() : null;
                        } else {
                            variableBuilder_.addAllMessages(other.variable_);
                        }
                    }
                }
                if (resultBuilder_ == null) {
                    if (!other.result_.isEmpty()) {
                        if (result_.isEmpty()) {
                            result_ = other.result_;
                            bitField0_ = (bitField0_ & ~0x00000020);
                        } else {
                            ensureResultIsMutable();
                            result_.addAll(other.result_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.result_.isEmpty()) {
                        if (resultBuilder_.isEmpty()) {
                            resultBuilder_.dispose();
                            resultBuilder_ = null;
                            result_ = other.result_;
                            bitField0_ = (bitField0_ & ~0x00000020);
                            resultBuilder_ =
                                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getResultFieldBuilder() : null;
                        } else {
                            resultBuilder_.addAllMessages(other.result_);
                        }
                    }
                }
                if (other.hasPhaseId()) {
                    phaseId_ = other.phaseId_;
                    bitField0_ |= 0x00000040;
                    onChanged();
                }
                if (other.hasPhaseStatus()) {
                    phaseStatus_ = other.phaseStatus_;
                    bitField0_ |= 0x00000080;
                    onChanged();
                }
                if (other.hasName()) {
                    name_ = other.name_;
                    bitField0_ |= 0x00000100;
                    onChanged();
                }
                if (other.hasStartDate()) {
                    setStartDate(other.getStartDate());
                }
                if (other.hasCompleteDate()) {
                    setCompleteDate(other.getCompleteDate());
                }
                if (other.hasWorkItemData()) {
                    mergeWorkItemData(other.getWorkItemData());
                }
                internalGetMutableTimerInstanceReference().mergeFrom(
                        other.internalGetTimerInstanceReference());
                bitField0_ |= 0x00001000;
                if (other.hasActualOwner()) {
                    actualOwner_ = other.actualOwner_;
                    bitField0_ |= 0x00002000;
                    onChanged();
                }
                if (other.hasExternalReferenceId()) {
                    externalReferenceId_ = other.externalReferenceId_;
                    bitField0_ |= 0x00004000;
                    onChanged();
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                workItemId_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00000001;
                                break;
                            } // case 10
                            case 18: {
                                java.lang.String s = input.readStringRequireUtf8();
                                ensureTimerInstanceIdIsMutable();
                                timerInstanceId_.add(s);
                                break;
                            } // case 18
                            case 26: {
                                errorHandlingProcessInstanceId_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00000004;
                                break;
                            } // case 26
                            case 32: {
                                state_ = input.readInt32();
                                bitField0_ |= 0x00000008;
                                break;
                            } // case 32
                            case 42: {
                                org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable m =
                                        input.readMessage(
                                                org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.parser(),
                                                extensionRegistry);
                                if (variableBuilder_ == null) {
                                    ensureVariableIsMutable();
                                    variable_.add(m);
                                } else {
                                    variableBuilder_.addMessage(m);
                                }
                                break;
                            } // case 42
                            case 50: {
                                org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable m =
                                        input.readMessage(
                                                org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.parser(),
                                                extensionRegistry);
                                if (resultBuilder_ == null) {
                                    ensureResultIsMutable();
                                    result_.add(m);
                                } else {
                                    resultBuilder_.addMessage(m);
                                }
                                break;
                            } // case 50
                            case 58: {
                                phaseId_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00000040;
                                break;
                            } // case 58
                            case 66: {
                                phaseStatus_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00000080;
                                break;
                            } // case 66
                            case 74: {
                                name_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00000100;
                                break;
                            } // case 74
                            case 80: {
                                startDate_ = input.readInt64();
                                bitField0_ |= 0x00000200;
                                break;
                            } // case 80
                            case 88: {
                                completeDate_ = input.readInt64();
                                bitField0_ |= 0x00000400;
                                break;
                            } // case 88
                            case 98: {
                                input.readMessage(
                                        getWorkItemDataFieldBuilder().getBuilder(),
                                        extensionRegistry);
                                bitField0_ |= 0x00000800;
                                break;
                            } // case 98
                            case 106: {
                                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = input.readMessage(
                                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                                internalGetMutableTimerInstanceReference().getMutableMap().put(
                                        timerInstanceReference__.getKey(), timerInstanceReference__.getValue());
                                bitField0_ |= 0x00001000;
                                break;
                            } // case 106
                            case 114: {
                                actualOwner_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00002000;
                                break;
                            } // case 114
                            case 122: {
                                externalReferenceId_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00004000;
                                break;
                            } // case 122
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }

            private int bitField0_;

            private java.lang.Object workItemId_ = "";

            /**
             * <code>string work_item_id = 1;</code>
             * 
             * @return The workItemId.
             */
            public java.lang.String getWorkItemId() {
                java.lang.Object ref = workItemId_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    workItemId_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>string work_item_id = 1;</code>
             * 
             * @return The bytes for workItemId.
             */
            public com.google.protobuf.ByteString
                    getWorkItemIdBytes() {
                java.lang.Object ref = workItemId_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    workItemId_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>string work_item_id = 1;</code>
             * 
             * @param value The workItemId to set.
             * @return This builder for chaining.
             */
            public Builder setWorkItemId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                workItemId_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>string work_item_id = 1;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearWorkItemId() {
                workItemId_ = getDefaultInstance().getWorkItemId();
                bitField0_ = (bitField0_ & ~0x00000001);
                onChanged();
                return this;
            }

            /**
             * <code>string work_item_id = 1;</code>
             * 
             * @param value The bytes for workItemId to set.
             * @return This builder for chaining.
             */
            public Builder setWorkItemIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                workItemId_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();

            private void ensureTimerInstanceIdIsMutable() {
                if (!timerInstanceId_.isModifiable()) {
                    timerInstanceId_ = new com.google.protobuf.LazyStringArrayList(timerInstanceId_);
                }
                bitField0_ |= 0x00000002;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @return A list containing the timerInstanceId.
             */
            public com.google.protobuf.ProtocolStringList
                    getTimerInstanceIdList() {
                timerInstanceId_.makeImmutable();
                return timerInstanceId_;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @return The count of timerInstanceId.
             */
            public int getTimerInstanceIdCount() {
                return timerInstanceId_.size();
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param index The index of the element to return.
             * @return The timerInstanceId at the given index.
             */
            public java.lang.String getTimerInstanceId(int index) {
                return timerInstanceId_.get(index);
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param index The index of the value to return.
             * @return The bytes of the timerInstanceId at the given index.
             */
            public com.google.protobuf.ByteString
                    getTimerInstanceIdBytes(int index) {
                return timerInstanceId_.getByteString(index);
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param index The index to set the value at.
             * @param value The timerInstanceId to set.
             * @return This builder for chaining.
             */
            public Builder setTimerInstanceId(
                    int index, java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.set(index, value);
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param value The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param values The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addAllTimerInstanceId(
                    java.lang.Iterable<java.lang.String> values) {
                ensureTimerInstanceIdIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(
                        values, timerInstanceId_);
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearTimerInstanceId() {
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                bitField0_ = (bitField0_ & ~0x00000002);
                ;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param value The bytes of the timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            private java.lang.Object errorHandlingProcessInstanceId_ = "";

            /**
             * <code>optional string error_handling_process_instance_id = 3;</code>
             * 
             * @return Whether the errorHandlingProcessInstanceId field is set.
             */
            public boolean hasErrorHandlingProcessInstanceId() {
                return ((bitField0_ & 0x00000004) != 0);
            }

            /**
             * <code>optional string error_handling_process_instance_id = 3;</code>
             * 
             * @return The errorHandlingProcessInstanceId.
             */
            public java.lang.String getErrorHandlingProcessInstanceId() {
                java.lang.Object ref = errorHandlingProcessInstanceId_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    errorHandlingProcessInstanceId_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>optional string error_handling_process_instance_id = 3;</code>
             * 
             * @return The bytes for errorHandlingProcessInstanceId.
             */
            public com.google.protobuf.ByteString
                    getErrorHandlingProcessInstanceIdBytes() {
                java.lang.Object ref = errorHandlingProcessInstanceId_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    errorHandlingProcessInstanceId_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>optional string error_handling_process_instance_id = 3;</code>
             * 
             * @param value The errorHandlingProcessInstanceId to set.
             * @return This builder for chaining.
             */
            public Builder setErrorHandlingProcessInstanceId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                errorHandlingProcessInstanceId_ = value;
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            /**
             * <code>optional string error_handling_process_instance_id = 3;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearErrorHandlingProcessInstanceId() {
                errorHandlingProcessInstanceId_ = getDefaultInstance().getErrorHandlingProcessInstanceId();
                bitField0_ = (bitField0_ & ~0x00000004);
                onChanged();
                return this;
            }

            /**
             * <code>optional string error_handling_process_instance_id = 3;</code>
             * 
             * @param value The bytes for errorHandlingProcessInstanceId to set.
             * @return This builder for chaining.
             */
            public Builder setErrorHandlingProcessInstanceIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                errorHandlingProcessInstanceId_ = value;
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            private int state_;

            /**
             * <pre>
             * work item data
             * </pre>
             *
             * <code>int32 state = 4;</code>
             * 
             * @return The state.
             */
            @java.lang.Override
            public int getState() {
                return state_;
            }

            /**
             * <pre>
             * work item data
             * </pre>
             *
             * <code>int32 state = 4;</code>
             * 
             * @param value The state to set.
             * @return This builder for chaining.
             */
            public Builder setState(int value) {

                state_ = value;
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }

            /**
             * <pre>
             * work item data
             * </pre>
             *
             * <code>int32 state = 4;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearState() {
                bitField0_ = (bitField0_ & ~0x00000008);
                state_ = 0;
                onChanged();
                return this;
            }

            private java.util.List<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable> variable_ =
                    java.util.Collections.emptyList();

            private void ensureVariableIsMutable() {
                if (!((bitField0_ & 0x00000010) != 0)) {
                    variable_ = new java.util.ArrayList<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable>(variable_);
                    bitField0_ |= 0x00000010;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder> variableBuilder_;

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public java.util.List<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable> getVariableList() {
                if (variableBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(variable_);
                } else {
                    return variableBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public int getVariableCount() {
                if (variableBuilder_ == null) {
                    return variable_.size();
                } else {
                    return variableBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable getVariable(int index) {
                if (variableBuilder_ == null) {
                    return variable_.get(index);
                } else {
                    return variableBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public Builder setVariable(
                    int index, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable value) {
                if (variableBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureVariableIsMutable();
                    variable_.set(index, value);
                    onChanged();
                } else {
                    variableBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public Builder setVariable(
                    int index, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder builderForValue) {
                if (variableBuilder_ == null) {
                    ensureVariableIsMutable();
                    variable_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    variableBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public Builder addVariable(org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable value) {
                if (variableBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureVariableIsMutable();
                    variable_.add(value);
                    onChanged();
                } else {
                    variableBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public Builder addVariable(
                    int index, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable value) {
                if (variableBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureVariableIsMutable();
                    variable_.add(index, value);
                    onChanged();
                } else {
                    variableBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public Builder addVariable(
                    org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder builderForValue) {
                if (variableBuilder_ == null) {
                    ensureVariableIsMutable();
                    variable_.add(builderForValue.build());
                    onChanged();
                } else {
                    variableBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public Builder addVariable(
                    int index, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder builderForValue) {
                if (variableBuilder_ == null) {
                    ensureVariableIsMutable();
                    variable_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    variableBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public Builder addAllVariable(
                    java.lang.Iterable<? extends org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable> values) {
                if (variableBuilder_ == null) {
                    ensureVariableIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(
                            values, variable_);
                    onChanged();
                } else {
                    variableBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public Builder clearVariable() {
                if (variableBuilder_ == null) {
                    variable_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000010);
                    onChanged();
                } else {
                    variableBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public Builder removeVariable(int index) {
                if (variableBuilder_ == null) {
                    ensureVariableIsMutable();
                    variable_.remove(index);
                    onChanged();
                } else {
                    variableBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder getVariableBuilder(
                    int index) {
                return getVariableFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder getVariableOrBuilder(
                    int index) {
                if (variableBuilder_ == null) {
                    return variable_.get(index);
                } else {
                    return variableBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public java.util.List<? extends org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder>
                    getVariableOrBuilderList() {
                if (variableBuilder_ != null) {
                    return variableBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(variable_);
                }
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder addVariableBuilder() {
                return getVariableFieldBuilder().addBuilder(
                        org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.getDefaultInstance());
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder addVariableBuilder(
                    int index) {
                return getVariableFieldBuilder().addBuilder(
                        index, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.getDefaultInstance());
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable variable = 5;</code>
             */
            public java.util.List<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder>
                    getVariableBuilderList() {
                return getVariableFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder>
                    getVariableFieldBuilder() {
                if (variableBuilder_ == null) {
                    variableBuilder_ =
                            new com.google.protobuf.RepeatedFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder>(
                                    variable_,
                                    ((bitField0_ & 0x00000010) != 0),
                                    getParentForChildren(),
                                    isClean());
                    variable_ = null;
                }
                return variableBuilder_;
            }

            private java.util.List<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable> result_ =
                    java.util.Collections.emptyList();

            private void ensureResultIsMutable() {
                if (!((bitField0_ & 0x00000020) != 0)) {
                    result_ = new java.util.ArrayList<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable>(result_);
                    bitField0_ |= 0x00000020;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder> resultBuilder_;

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public java.util.List<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable> getResultList() {
                if (resultBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(result_);
                } else {
                    return resultBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public int getResultCount() {
                if (resultBuilder_ == null) {
                    return result_.size();
                } else {
                    return resultBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable getResult(int index) {
                if (resultBuilder_ == null) {
                    return result_.get(index);
                } else {
                    return resultBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public Builder setResult(
                    int index, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable value) {
                if (resultBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureResultIsMutable();
                    result_.set(index, value);
                    onChanged();
                } else {
                    resultBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public Builder setResult(
                    int index, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder builderForValue) {
                if (resultBuilder_ == null) {
                    ensureResultIsMutable();
                    result_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    resultBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public Builder addResult(org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable value) {
                if (resultBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureResultIsMutable();
                    result_.add(value);
                    onChanged();
                } else {
                    resultBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public Builder addResult(
                    int index, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable value) {
                if (resultBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureResultIsMutable();
                    result_.add(index, value);
                    onChanged();
                } else {
                    resultBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public Builder addResult(
                    org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder builderForValue) {
                if (resultBuilder_ == null) {
                    ensureResultIsMutable();
                    result_.add(builderForValue.build());
                    onChanged();
                } else {
                    resultBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public Builder addResult(
                    int index, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder builderForValue) {
                if (resultBuilder_ == null) {
                    ensureResultIsMutable();
                    result_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    resultBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public Builder addAllResult(
                    java.lang.Iterable<? extends org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable> values) {
                if (resultBuilder_ == null) {
                    ensureResultIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(
                            values, result_);
                    onChanged();
                } else {
                    resultBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public Builder clearResult() {
                if (resultBuilder_ == null) {
                    result_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000020);
                    onChanged();
                } else {
                    resultBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public Builder removeResult(int index) {
                if (resultBuilder_ == null) {
                    ensureResultIsMutable();
                    result_.remove(index);
                    onChanged();
                } else {
                    resultBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder getResultBuilder(
                    int index) {
                return getResultFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder getResultOrBuilder(
                    int index) {
                if (resultBuilder_ == null) {
                    return result_.get(index);
                } else {
                    return resultBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public java.util.List<? extends org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder>
                    getResultOrBuilderList() {
                if (resultBuilder_ != null) {
                    return resultBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(result_);
                }
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder addResultBuilder() {
                return getResultFieldBuilder().addBuilder(
                        org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.getDefaultInstance());
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder addResultBuilder(
                    int index) {
                return getResultFieldBuilder().addBuilder(
                        index, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.getDefaultInstance());
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.Variable result = 6;</code>
             */
            public java.util.List<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder>
                    getResultBuilderList() {
                return getResultFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder>
                    getResultFieldBuilder() {
                if (resultBuilder_ == null) {
                    resultBuilder_ =
                            new com.google.protobuf.RepeatedFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.Variable.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.VariableOrBuilder>(
                                    result_,
                                    ((bitField0_ & 0x00000020) != 0),
                                    getParentForChildren(),
                                    isClean());
                    result_ = null;
                }
                return resultBuilder_;
            }

            private java.lang.Object phaseId_ = "";

            /**
             * <code>optional string phase_id = 7;</code>
             * 
             * @return Whether the phaseId field is set.
             */
            public boolean hasPhaseId() {
                return ((bitField0_ & 0x00000040) != 0);
            }

            /**
             * <code>optional string phase_id = 7;</code>
             * 
             * @return The phaseId.
             */
            public java.lang.String getPhaseId() {
                java.lang.Object ref = phaseId_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    phaseId_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>optional string phase_id = 7;</code>
             * 
             * @return The bytes for phaseId.
             */
            public com.google.protobuf.ByteString
                    getPhaseIdBytes() {
                java.lang.Object ref = phaseId_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    phaseId_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>optional string phase_id = 7;</code>
             * 
             * @param value The phaseId to set.
             * @return This builder for chaining.
             */
            public Builder setPhaseId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                phaseId_ = value;
                bitField0_ |= 0x00000040;
                onChanged();
                return this;
            }

            /**
             * <code>optional string phase_id = 7;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearPhaseId() {
                phaseId_ = getDefaultInstance().getPhaseId();
                bitField0_ = (bitField0_ & ~0x00000040);
                onChanged();
                return this;
            }

            /**
             * <code>optional string phase_id = 7;</code>
             * 
             * @param value The bytes for phaseId to set.
             * @return This builder for chaining.
             */
            public Builder setPhaseIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                phaseId_ = value;
                bitField0_ |= 0x00000040;
                onChanged();
                return this;
            }

            private java.lang.Object phaseStatus_ = "";

            /**
             * <code>optional string phase_status = 8;</code>
             * 
             * @return Whether the phaseStatus field is set.
             */
            public boolean hasPhaseStatus() {
                return ((bitField0_ & 0x00000080) != 0);
            }

            /**
             * <code>optional string phase_status = 8;</code>
             * 
             * @return The phaseStatus.
             */
            public java.lang.String getPhaseStatus() {
                java.lang.Object ref = phaseStatus_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    phaseStatus_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>optional string phase_status = 8;</code>
             * 
             * @return The bytes for phaseStatus.
             */
            public com.google.protobuf.ByteString
                    getPhaseStatusBytes() {
                java.lang.Object ref = phaseStatus_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    phaseStatus_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>optional string phase_status = 8;</code>
             * 
             * @param value The phaseStatus to set.
             * @return This builder for chaining.
             */
            public Builder setPhaseStatus(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                phaseStatus_ = value;
                bitField0_ |= 0x00000080;
                onChanged();
                return this;
            }

            /**
             * <code>optional string phase_status = 8;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearPhaseStatus() {
                phaseStatus_ = getDefaultInstance().getPhaseStatus();
                bitField0_ = (bitField0_ & ~0x00000080);
                onChanged();
                return this;
            }

            /**
             * <code>optional string phase_status = 8;</code>
             * 
             * @param value The bytes for phaseStatus to set.
             * @return This builder for chaining.
             */
            public Builder setPhaseStatusBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                phaseStatus_ = value;
                bitField0_ |= 0x00000080;
                onChanged();
                return this;
            }

            private java.lang.Object name_ = "";

            /**
             * <code>optional string name = 9;</code>
             * 
             * @return Whether the name field is set.
             */
            public boolean hasName() {
                return ((bitField0_ & 0x00000100) != 0);
            }

            /**
             * <code>optional string name = 9;</code>
             * 
             * @return The name.
             */
            public java.lang.String getName() {
                java.lang.Object ref = name_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    name_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>optional string name = 9;</code>
             * 
             * @return The bytes for name.
             */
            public com.google.protobuf.ByteString
                    getNameBytes() {
                java.lang.Object ref = name_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    name_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>optional string name = 9;</code>
             * 
             * @param value The name to set.
             * @return This builder for chaining.
             */
            public Builder setName(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                name_ = value;
                bitField0_ |= 0x00000100;
                onChanged();
                return this;
            }

            /**
             * <code>optional string name = 9;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearName() {
                name_ = getDefaultInstance().getName();
                bitField0_ = (bitField0_ & ~0x00000100);
                onChanged();
                return this;
            }

            /**
             * <code>optional string name = 9;</code>
             * 
             * @param value The bytes for name to set.
             * @return This builder for chaining.
             */
            public Builder setNameBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                name_ = value;
                bitField0_ |= 0x00000100;
                onChanged();
                return this;
            }

            private long startDate_;

            /**
             * <code>optional int64 start_date = 10;</code>
             * 
             * @return Whether the startDate field is set.
             */
            @java.lang.Override
            public boolean hasStartDate() {
                return ((bitField0_ & 0x00000200) != 0);
            }

            /**
             * <code>optional int64 start_date = 10;</code>
             * 
             * @return The startDate.
             */
            @java.lang.Override
            public long getStartDate() {
                return startDate_;
            }

            /**
             * <code>optional int64 start_date = 10;</code>
             * 
             * @param value The startDate to set.
             * @return This builder for chaining.
             */
            public Builder setStartDate(long value) {

                startDate_ = value;
                bitField0_ |= 0x00000200;
                onChanged();
                return this;
            }

            /**
             * <code>optional int64 start_date = 10;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearStartDate() {
                bitField0_ = (bitField0_ & ~0x00000200);
                startDate_ = 0L;
                onChanged();
                return this;
            }

            private long completeDate_;

            /**
             * <code>optional int64 complete_date = 11;</code>
             * 
             * @return Whether the completeDate field is set.
             */
            @java.lang.Override
            public boolean hasCompleteDate() {
                return ((bitField0_ & 0x00000400) != 0);
            }

            /**
             * <code>optional int64 complete_date = 11;</code>
             * 
             * @return The completeDate.
             */
            @java.lang.Override
            public long getCompleteDate() {
                return completeDate_;
            }

            /**
             * <code>optional int64 complete_date = 11;</code>
             * 
             * @param value The completeDate to set.
             * @return This builder for chaining.
             */
            public Builder setCompleteDate(long value) {

                completeDate_ = value;
                bitField0_ |= 0x00000400;
                onChanged();
                return this;
            }

            /**
             * <code>optional int64 complete_date = 11;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearCompleteDate() {
                bitField0_ = (bitField0_ & ~0x00000400);
                completeDate_ = 0L;
                onChanged();
                return this;
            }

            private com.google.protobuf.Any workItemData_;
            private com.google.protobuf.SingleFieldBuilderV3<com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder> workItemDataBuilder_;

            /**
             * <code>optional .google.protobuf.Any work_item_data = 12;</code>
             * 
             * @return Whether the workItemData field is set.
             */
            public boolean hasWorkItemData() {
                return ((bitField0_ & 0x00000800) != 0);
            }

            /**
             * <code>optional .google.protobuf.Any work_item_data = 12;</code>
             * 
             * @return The workItemData.
             */
            public com.google.protobuf.Any getWorkItemData() {
                if (workItemDataBuilder_ == null) {
                    return workItemData_ == null ? com.google.protobuf.Any.getDefaultInstance() : workItemData_;
                } else {
                    return workItemDataBuilder_.getMessage();
                }
            }

            /**
             * <code>optional .google.protobuf.Any work_item_data = 12;</code>
             */
            public Builder setWorkItemData(com.google.protobuf.Any value) {
                if (workItemDataBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    workItemData_ = value;
                } else {
                    workItemDataBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000800;
                onChanged();
                return this;
            }

            /**
             * <code>optional .google.protobuf.Any work_item_data = 12;</code>
             */
            public Builder setWorkItemData(
                    com.google.protobuf.Any.Builder builderForValue) {
                if (workItemDataBuilder_ == null) {
                    workItemData_ = builderForValue.build();
                } else {
                    workItemDataBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000800;
                onChanged();
                return this;
            }

            /**
             * <code>optional .google.protobuf.Any work_item_data = 12;</code>
             */
            public Builder mergeWorkItemData(com.google.protobuf.Any value) {
                if (workItemDataBuilder_ == null) {
                    if (((bitField0_ & 0x00000800) != 0) &&
                            workItemData_ != null &&
                            workItemData_ != com.google.protobuf.Any.getDefaultInstance()) {
                        getWorkItemDataBuilder().mergeFrom(value);
                    } else {
                        workItemData_ = value;
                    }
                } else {
                    workItemDataBuilder_.mergeFrom(value);
                }
                if (workItemData_ != null) {
                    bitField0_ |= 0x00000800;
                    onChanged();
                }
                return this;
            }

            /**
             * <code>optional .google.protobuf.Any work_item_data = 12;</code>
             */
            public Builder clearWorkItemData() {
                bitField0_ = (bitField0_ & ~0x00000800);
                workItemData_ = null;
                if (workItemDataBuilder_ != null) {
                    workItemDataBuilder_.dispose();
                    workItemDataBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>optional .google.protobuf.Any work_item_data = 12;</code>
             */
            public com.google.protobuf.Any.Builder getWorkItemDataBuilder() {
                bitField0_ |= 0x00000800;
                onChanged();
                return getWorkItemDataFieldBuilder().getBuilder();
            }

            /**
             * <code>optional .google.protobuf.Any work_item_data = 12;</code>
             */
            public com.google.protobuf.AnyOrBuilder getWorkItemDataOrBuilder() {
                if (workItemDataBuilder_ != null) {
                    return workItemDataBuilder_.getMessageOrBuilder();
                } else {
                    return workItemData_ == null ? com.google.protobuf.Any.getDefaultInstance() : workItemData_;
                }
            }

            /**
             * <code>optional .google.protobuf.Any work_item_data = 12;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder>
                    getWorkItemDataFieldBuilder() {
                if (workItemDataBuilder_ == null) {
                    workItemDataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder>(
                            getWorkItemData(),
                            getParentForChildren(),
                            isClean());
                    workItemData_ = null;
                }
                return workItemDataBuilder_;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    return com.google.protobuf.MapField.emptyMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                return timerInstanceReference_;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetMutableTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    timerInstanceReference_ = com.google.protobuf.MapField.newMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                if (!timerInstanceReference_.isMutable()) {
                    timerInstanceReference_ = timerInstanceReference_.copy();
                }
                bitField0_ |= 0x00001000;
                onChanged();
                return timerInstanceReference_;
            }

            public int getTimerInstanceReferenceCount() {
                return internalGetTimerInstanceReference().getMap().size();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 13;</code>
             */
            @java.lang.Override
            public boolean containsTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                return internalGetTimerInstanceReference().getMap().containsKey(key);
            }

            /**
             * Use {@link #getTimerInstanceReferenceMap()} instead.
             */
            @java.lang.Override
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
                return getTimerInstanceReferenceMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 13;</code>
             */
            @java.lang.Override
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
                return internalGetTimerInstanceReference().getMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 13;</code>
             */
            @java.lang.Override
            public /* nullable */
            java.lang.String getTimerInstanceReferenceOrDefault(
                    java.lang.String key,
                    /* nullable */
                    java.lang.String defaultValue) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                return map.containsKey(key) ? map.get(key) : defaultValue;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 13;</code>
             */
            @java.lang.Override
            public java.lang.String getTimerInstanceReferenceOrThrow(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                if (!map.containsKey(key)) {
                    throw new java.lang.IllegalArgumentException();
                }
                return map.get(key);
            }

            public Builder clearTimerInstanceReference() {
                bitField0_ = (bitField0_ & ~0x00001000);
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .clear();
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 13;</code>
             */
            public Builder removeTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .remove(key);
                return this;
            }

            /**
             * Use alternate mutation accessors instead.
             */
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String>
                    getMutableTimerInstanceReference() {
                bitField0_ |= 0x00001000;
                return internalGetMutableTimerInstanceReference().getMutableMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 13;</code>
             */
            public Builder putTimerInstanceReference(
                    java.lang.String key,
                    java.lang.String value) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                if (value == null) {
                    throw new NullPointerException("map value");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .put(key, value);
                bitField0_ |= 0x00001000;
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 13;</code>
             */
            public Builder putAllTimerInstanceReference(
                    java.util.Map<java.lang.String, java.lang.String> values) {
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .putAll(values);
                bitField0_ |= 0x00001000;
                return this;
            }

            private java.lang.Object actualOwner_ = "";

            /**
             * <code>optional string actual_owner = 14;</code>
             * 
             * @return Whether the actualOwner field is set.
             */
            public boolean hasActualOwner() {
                return ((bitField0_ & 0x00002000) != 0);
            }

            /**
             * <code>optional string actual_owner = 14;</code>
             * 
             * @return The actualOwner.
             */
            public java.lang.String getActualOwner() {
                java.lang.Object ref = actualOwner_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    actualOwner_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>optional string actual_owner = 14;</code>
             * 
             * @return The bytes for actualOwner.
             */
            public com.google.protobuf.ByteString
                    getActualOwnerBytes() {
                java.lang.Object ref = actualOwner_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    actualOwner_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>optional string actual_owner = 14;</code>
             * 
             * @param value The actualOwner to set.
             * @return This builder for chaining.
             */
            public Builder setActualOwner(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                actualOwner_ = value;
                bitField0_ |= 0x00002000;
                onChanged();
                return this;
            }

            /**
             * <code>optional string actual_owner = 14;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearActualOwner() {
                actualOwner_ = getDefaultInstance().getActualOwner();
                bitField0_ = (bitField0_ & ~0x00002000);
                onChanged();
                return this;
            }

            /**
             * <code>optional string actual_owner = 14;</code>
             * 
             * @param value The bytes for actualOwner to set.
             * @return This builder for chaining.
             */
            public Builder setActualOwnerBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                actualOwner_ = value;
                bitField0_ |= 0x00002000;
                onChanged();
                return this;
            }

            private java.lang.Object externalReferenceId_ = "";

            /**
             * <code>optional string external_reference_id = 15;</code>
             * 
             * @return Whether the externalReferenceId field is set.
             */
            public boolean hasExternalReferenceId() {
                return ((bitField0_ & 0x00004000) != 0);
            }

            /**
             * <code>optional string external_reference_id = 15;</code>
             * 
             * @return The externalReferenceId.
             */
            public java.lang.String getExternalReferenceId() {
                java.lang.Object ref = externalReferenceId_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    externalReferenceId_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>optional string external_reference_id = 15;</code>
             * 
             * @return The bytes for externalReferenceId.
             */
            public com.google.protobuf.ByteString
                    getExternalReferenceIdBytes() {
                java.lang.Object ref = externalReferenceId_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    externalReferenceId_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>optional string external_reference_id = 15;</code>
             * 
             * @param value The externalReferenceId to set.
             * @return This builder for chaining.
             */
            public Builder setExternalReferenceId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                externalReferenceId_ = value;
                bitField0_ |= 0x00004000;
                onChanged();
                return this;
            }

            /**
             * <code>optional string external_reference_id = 15;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearExternalReferenceId() {
                externalReferenceId_ = getDefaultInstance().getExternalReferenceId();
                bitField0_ = (bitField0_ & ~0x00004000);
                onChanged();
                return this;
            }

            /**
             * <code>optional string external_reference_id = 15;</code>
             * 
             * @param value The bytes for externalReferenceId to set.
             * @return This builder for chaining.
             */
            public Builder setExternalReferenceIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                externalReferenceId_ = value;
                bitField0_ |= 0x00004000;
                onChanged();
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }

            // @@protoc_insertion_point(builder_scope:org.jbpm.flow.serialization.protobuf.WorkItemNodeInstanceContent)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.flow.serialization.protobuf.WorkItemNodeInstanceContent)
        private static final org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent();
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<WorkItemNodeInstanceContent> PARSER = new com.google.protobuf.AbstractParser<WorkItemNodeInstanceContent>() {
            @java.lang.Override
            public WorkItemNodeInstanceContent parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e)
                            .setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<WorkItemNodeInstanceContent> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<WorkItemNodeInstanceContent> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.WorkItemNodeInstanceContent getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface LambdaSubProcessNodeInstanceContentOrBuilder extends
            // @@protoc_insertion_point(interface_extends:org.jbpm.flow.serialization.protobuf.LambdaSubProcessNodeInstanceContent)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>optional string process_instance_id = 1;</code>
         * 
         * @return Whether the processInstanceId field is set.
         */
        boolean hasProcessInstanceId();

        /**
         * <code>optional string process_instance_id = 1;</code>
         * 
         * @return The processInstanceId.
         */
        java.lang.String getProcessInstanceId();

        /**
         * <code>optional string process_instance_id = 1;</code>
         * 
         * @return The bytes for processInstanceId.
         */
        com.google.protobuf.ByteString
                getProcessInstanceIdBytes();

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.String>
                getTimerInstanceIdList();

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        java.lang.String getTimerInstanceId(int index);

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index);

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        int getTimerInstanceReferenceCount();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        boolean containsTimerInstanceReference(
                java.lang.String key);

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Deprecated
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReference();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReferenceMap();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue);

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key);
    }

    /**
     * Protobuf type {@code org.jbpm.flow.serialization.protobuf.LambdaSubProcessNodeInstanceContent}
     */
    public static final class LambdaSubProcessNodeInstanceContent extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:org.jbpm.flow.serialization.protobuf.LambdaSubProcessNodeInstanceContent)
            LambdaSubProcessNodeInstanceContentOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use LambdaSubProcessNodeInstanceContent.newBuilder() to construct.
        private LambdaSubProcessNodeInstanceContent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private LambdaSubProcessNodeInstanceContent() {
            processInstanceId_ = "";
            timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(
                UnusedPrivateParameter unused) {
            return new LambdaSubProcessNodeInstanceContent();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_LambdaSubProcessNodeInstanceContent_descriptor;
        }

        @SuppressWarnings({ "rawtypes" })
        @java.lang.Override
        protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                int number) {
            switch (number) {
                case 3:
                    return internalGetTimerInstanceReference();
                default:
                    throw new RuntimeException(
                            "Invalid map field number: " + number);
            }
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_LambdaSubProcessNodeInstanceContent_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent.class,
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent.Builder.class);
        }

        private int bitField0_;
        public static final int PROCESS_INSTANCE_ID_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private volatile java.lang.Object processInstanceId_ = "";

        /**
         * <code>optional string process_instance_id = 1;</code>
         * 
         * @return Whether the processInstanceId field is set.
         */
        @java.lang.Override
        public boolean hasProcessInstanceId() {
            return ((bitField0_ & 0x00000001) != 0);
        }

        /**
         * <code>optional string process_instance_id = 1;</code>
         * 
         * @return The processInstanceId.
         */
        @java.lang.Override
        public java.lang.String getProcessInstanceId() {
            java.lang.Object ref = processInstanceId_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                processInstanceId_ = s;
                return s;
            }
        }

        /**
         * <code>optional string process_instance_id = 1;</code>
         * 
         * @return The bytes for processInstanceId.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
                getProcessInstanceIdBytes() {
            java.lang.Object ref = processInstanceId_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (java.lang.String) ref);
                processInstanceId_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 2;
        @SuppressWarnings("serial")
        private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                com.google.protobuf.LazyStringArrayList.emptyList();

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        public com.google.protobuf.ProtocolStringList
                getTimerInstanceIdList() {
            return timerInstanceId_;
        }

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
        }

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public java.lang.String getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
        }

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        public com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index) {
            return timerInstanceId_.getByteString(index);
        }

        public static final int TIMER_INSTANCE_REFERENCE_FIELD_NUMBER = 3;

        private static final class TimerInstanceReferenceDefaultEntryHolder {
            static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
                    com.google.protobuf.MapEntry.<java.lang.String, java.lang.String> newDefaultInstance(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_LambdaSubProcessNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "",
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "");
        }

        @SuppressWarnings("serial")
        private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

        private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                internalGetTimerInstanceReference() {
            if (timerInstanceReference_ == null) {
                return com.google.protobuf.MapField.emptyMapField(
                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
            }
            return timerInstanceReference_;
        }

        public int getTimerInstanceReferenceCount() {
            return internalGetTimerInstanceReference().getMap().size();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public boolean containsTimerInstanceReference(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            return internalGetTimerInstanceReference().getMap().containsKey(key);
        }

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Override
        @java.lang.Deprecated
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
            return getTimerInstanceReferenceMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
            return internalGetTimerInstanceReference().getMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            return map.containsKey(key) ? map.get(key) : defaultValue;
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            if (!map.containsKey(key)) {
                throw new java.lang.IllegalArgumentException();
            }
            return map.get(key);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            if (((bitField0_ & 0x00000001) != 0)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, processInstanceId_);
            }
            for (int i = 0; i < timerInstanceId_.size(); i++) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 2, timerInstanceId_.getRaw(i));
            }
            com.google.protobuf.GeneratedMessageV3
                    .serializeStringMapTo(
                            output,
                            internalGetTimerInstanceReference(),
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry,
                            3);
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;

            size = 0;
            if (((bitField0_ & 0x00000001) != 0)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, processInstanceId_);
            }
            {
                int dataSize = 0;
                for (int i = 0; i < timerInstanceId_.size(); i++) {
                    dataSize += computeStringSizeNoTag(timerInstanceId_.getRaw(i));
                }
                size += dataSize;
                size += 1 * getTimerInstanceIdList().size();
            }
            for (java.util.Map.Entry<java.lang.String, java.lang.String> entry : internalGetTimerInstanceReference().getMap().entrySet()) {
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = TimerInstanceReferenceDefaultEntryHolder.defaultEntry.newBuilderForType()
                        .setKey(entry.getKey())
                        .setValue(entry.getValue())
                        .build();
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(3, timerInstanceReference__);
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent)) {
                return super.equals(obj);
            }
            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent other =
                    (org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent) obj;

            if (hasProcessInstanceId() != other.hasProcessInstanceId())
                return false;
            if (hasProcessInstanceId()) {
                if (!getProcessInstanceId()
                        .equals(other.getProcessInstanceId()))
                    return false;
            }
            if (!getTimerInstanceIdList()
                    .equals(other.getTimerInstanceIdList()))
                return false;
            if (!internalGetTimerInstanceReference().equals(
                    other.internalGetTimerInstanceReference()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasProcessInstanceId()) {
                hash = (37 * hash) + PROCESS_INSTANCE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getProcessInstanceId().hashCode();
            }
            if (getTimerInstanceIdCount() > 0) {
                hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getTimerInstanceIdList().hashCode();
            }
            if (!internalGetTimerInstanceReference().getMap().isEmpty()) {
                hash = (37 * hash) + TIMER_INSTANCE_REFERENCE_FIELD_NUMBER;
                hash = (53 * hash) + internalGetTimerInstanceReference().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder()
                    : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.jbpm.flow.serialization.protobuf.LambdaSubProcessNodeInstanceContent}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:org.jbpm.flow.serialization.protobuf.LambdaSubProcessNodeInstanceContent)
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContentOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                    getDescriptor() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_LambdaSubProcessNodeInstanceContent_descriptor;
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                    int number) {
                switch (number) {
                    case 3:
                        return internalGetTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
                    int number) {
                switch (number) {
                    case 3:
                        return internalGetMutableTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_LambdaSubProcessNodeInstanceContent_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent.class,
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent.Builder.class);
            }

            // Construct using org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent.newBuilder()
            private Builder() {

            }

            private Builder(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);

            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                processInstanceId_ = "";
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                internalGetMutableTimerInstanceReference().clear();
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
                    getDescriptorForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_LambdaSubProcessNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent getDefaultInstanceForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent.getDefaultInstance();
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent build() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent buildPartial() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent result =
                        new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent result) {
                int from_bitField0_ = bitField0_;
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.processInstanceId_ = processInstanceId_;
                    to_bitField0_ |= 0x00000001;
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    timerInstanceId_.makeImmutable();
                    result.timerInstanceId_ = timerInstanceId_;
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.timerInstanceReference_ = internalGetTimerInstanceReference();
                    result.timerInstanceReference_.makeImmutable();
                }
                result.bitField0_ |= to_bitField0_;
            }

            @java.lang.Override
            public Builder clone() {
                return super.clone();
            }

            @java.lang.Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.setField(field, value);
            }

            @java.lang.Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @java.lang.Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @java.lang.Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, java.lang.Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @java.lang.Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.addRepeatedField(field, value);
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent) {
                    return mergeFrom((org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent other) {
                if (other == org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent.getDefaultInstance())
                    return this;
                if (other.hasProcessInstanceId()) {
                    processInstanceId_ = other.processInstanceId_;
                    bitField0_ |= 0x00000001;
                    onChanged();
                }
                if (!other.timerInstanceId_.isEmpty()) {
                    if (timerInstanceId_.isEmpty()) {
                        timerInstanceId_ = other.timerInstanceId_;
                        bitField0_ |= 0x00000002;
                    } else {
                        ensureTimerInstanceIdIsMutable();
                        timerInstanceId_.addAll(other.timerInstanceId_);
                    }
                    onChanged();
                }
                internalGetMutableTimerInstanceReference().mergeFrom(
                        other.internalGetTimerInstanceReference());
                bitField0_ |= 0x00000004;
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                processInstanceId_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00000001;
                                break;
                            } // case 10
                            case 18: {
                                java.lang.String s = input.readStringRequireUtf8();
                                ensureTimerInstanceIdIsMutable();
                                timerInstanceId_.add(s);
                                break;
                            } // case 18
                            case 26: {
                                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = input.readMessage(
                                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                                internalGetMutableTimerInstanceReference().getMutableMap().put(
                                        timerInstanceReference__.getKey(), timerInstanceReference__.getValue());
                                bitField0_ |= 0x00000004;
                                break;
                            } // case 26
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }

            private int bitField0_;

            private java.lang.Object processInstanceId_ = "";

            /**
             * <code>optional string process_instance_id = 1;</code>
             * 
             * @return Whether the processInstanceId field is set.
             */
            public boolean hasProcessInstanceId() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>optional string process_instance_id = 1;</code>
             * 
             * @return The processInstanceId.
             */
            public java.lang.String getProcessInstanceId() {
                java.lang.Object ref = processInstanceId_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    processInstanceId_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>optional string process_instance_id = 1;</code>
             * 
             * @return The bytes for processInstanceId.
             */
            public com.google.protobuf.ByteString
                    getProcessInstanceIdBytes() {
                java.lang.Object ref = processInstanceId_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    processInstanceId_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>optional string process_instance_id = 1;</code>
             * 
             * @param value The processInstanceId to set.
             * @return This builder for chaining.
             */
            public Builder setProcessInstanceId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                processInstanceId_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>optional string process_instance_id = 1;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearProcessInstanceId() {
                processInstanceId_ = getDefaultInstance().getProcessInstanceId();
                bitField0_ = (bitField0_ & ~0x00000001);
                onChanged();
                return this;
            }

            /**
             * <code>optional string process_instance_id = 1;</code>
             * 
             * @param value The bytes for processInstanceId to set.
             * @return This builder for chaining.
             */
            public Builder setProcessInstanceIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                processInstanceId_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();

            private void ensureTimerInstanceIdIsMutable() {
                if (!timerInstanceId_.isModifiable()) {
                    timerInstanceId_ = new com.google.protobuf.LazyStringArrayList(timerInstanceId_);
                }
                bitField0_ |= 0x00000002;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @return A list containing the timerInstanceId.
             */
            public com.google.protobuf.ProtocolStringList
                    getTimerInstanceIdList() {
                timerInstanceId_.makeImmutable();
                return timerInstanceId_;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @return The count of timerInstanceId.
             */
            public int getTimerInstanceIdCount() {
                return timerInstanceId_.size();
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param index The index of the element to return.
             * @return The timerInstanceId at the given index.
             */
            public java.lang.String getTimerInstanceId(int index) {
                return timerInstanceId_.get(index);
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param index The index of the value to return.
             * @return The bytes of the timerInstanceId at the given index.
             */
            public com.google.protobuf.ByteString
                    getTimerInstanceIdBytes(int index) {
                return timerInstanceId_.getByteString(index);
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param index The index to set the value at.
             * @param value The timerInstanceId to set.
             * @return This builder for chaining.
             */
            public Builder setTimerInstanceId(
                    int index, java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.set(index, value);
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param value The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param values The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addAllTimerInstanceId(
                    java.lang.Iterable<java.lang.String> values) {
                ensureTimerInstanceIdIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(
                        values, timerInstanceId_);
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearTimerInstanceId() {
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                bitField0_ = (bitField0_ & ~0x00000002);
                ;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param value The bytes of the timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    return com.google.protobuf.MapField.emptyMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                return timerInstanceReference_;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetMutableTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    timerInstanceReference_ = com.google.protobuf.MapField.newMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                if (!timerInstanceReference_.isMutable()) {
                    timerInstanceReference_ = timerInstanceReference_.copy();
                }
                bitField0_ |= 0x00000004;
                onChanged();
                return timerInstanceReference_;
            }

            public int getTimerInstanceReferenceCount() {
                return internalGetTimerInstanceReference().getMap().size();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public boolean containsTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                return internalGetTimerInstanceReference().getMap().containsKey(key);
            }

            /**
             * Use {@link #getTimerInstanceReferenceMap()} instead.
             */
            @java.lang.Override
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
                return getTimerInstanceReferenceMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
                return internalGetTimerInstanceReference().getMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public /* nullable */
            java.lang.String getTimerInstanceReferenceOrDefault(
                    java.lang.String key,
                    /* nullable */
                    java.lang.String defaultValue) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                return map.containsKey(key) ? map.get(key) : defaultValue;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public java.lang.String getTimerInstanceReferenceOrThrow(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                if (!map.containsKey(key)) {
                    throw new java.lang.IllegalArgumentException();
                }
                return map.get(key);
            }

            public Builder clearTimerInstanceReference() {
                bitField0_ = (bitField0_ & ~0x00000004);
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .clear();
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder removeTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .remove(key);
                return this;
            }

            /**
             * Use alternate mutation accessors instead.
             */
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String>
                    getMutableTimerInstanceReference() {
                bitField0_ |= 0x00000004;
                return internalGetMutableTimerInstanceReference().getMutableMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder putTimerInstanceReference(
                    java.lang.String key,
                    java.lang.String value) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                if (value == null) {
                    throw new NullPointerException("map value");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .put(key, value);
                bitField0_ |= 0x00000004;
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder putAllTimerInstanceReference(
                    java.util.Map<java.lang.String, java.lang.String> values) {
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .putAll(values);
                bitField0_ |= 0x00000004;
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }

            // @@protoc_insertion_point(builder_scope:org.jbpm.flow.serialization.protobuf.LambdaSubProcessNodeInstanceContent)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.flow.serialization.protobuf.LambdaSubProcessNodeInstanceContent)
        private static final org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent();
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<LambdaSubProcessNodeInstanceContent> PARSER = new com.google.protobuf.AbstractParser<LambdaSubProcessNodeInstanceContent>() {
            @java.lang.Override
            public LambdaSubProcessNodeInstanceContent parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e)
                            .setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<LambdaSubProcessNodeInstanceContent> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<LambdaSubProcessNodeInstanceContent> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.LambdaSubProcessNodeInstanceContent getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface SubProcessNodeInstanceContentOrBuilder extends
            // @@protoc_insertion_point(interface_extends:org.jbpm.flow.serialization.protobuf.SubProcessNodeInstanceContent)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>optional string process_instance_id = 1;</code>
         * 
         * @return Whether the processInstanceId field is set.
         */
        boolean hasProcessInstanceId();

        /**
         * <code>optional string process_instance_id = 1;</code>
         * 
         * @return The processInstanceId.
         */
        java.lang.String getProcessInstanceId();

        /**
         * <code>optional string process_instance_id = 1;</code>
         * 
         * @return The bytes for processInstanceId.
         */
        com.google.protobuf.ByteString
                getProcessInstanceIdBytes();

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.String>
                getTimerInstanceIdList();

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        java.lang.String getTimerInstanceId(int index);

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index);

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        int getTimerInstanceReferenceCount();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        boolean containsTimerInstanceReference(
                java.lang.String key);

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Deprecated
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReference();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReferenceMap();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue);

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key);
    }

    /**
     * Protobuf type {@code org.jbpm.flow.serialization.protobuf.SubProcessNodeInstanceContent}
     */
    public static final class SubProcessNodeInstanceContent extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:org.jbpm.flow.serialization.protobuf.SubProcessNodeInstanceContent)
            SubProcessNodeInstanceContentOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use SubProcessNodeInstanceContent.newBuilder() to construct.
        private SubProcessNodeInstanceContent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private SubProcessNodeInstanceContent() {
            processInstanceId_ = "";
            timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(
                UnusedPrivateParameter unused) {
            return new SubProcessNodeInstanceContent();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_SubProcessNodeInstanceContent_descriptor;
        }

        @SuppressWarnings({ "rawtypes" })
        @java.lang.Override
        protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                int number) {
            switch (number) {
                case 3:
                    return internalGetTimerInstanceReference();
                default:
                    throw new RuntimeException(
                            "Invalid map field number: " + number);
            }
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_SubProcessNodeInstanceContent_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent.class,
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent.Builder.class);
        }

        private int bitField0_;
        public static final int PROCESS_INSTANCE_ID_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private volatile java.lang.Object processInstanceId_ = "";

        /**
         * <code>optional string process_instance_id = 1;</code>
         * 
         * @return Whether the processInstanceId field is set.
         */
        @java.lang.Override
        public boolean hasProcessInstanceId() {
            return ((bitField0_ & 0x00000001) != 0);
        }

        /**
         * <code>optional string process_instance_id = 1;</code>
         * 
         * @return The processInstanceId.
         */
        @java.lang.Override
        public java.lang.String getProcessInstanceId() {
            java.lang.Object ref = processInstanceId_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                processInstanceId_ = s;
                return s;
            }
        }

        /**
         * <code>optional string process_instance_id = 1;</code>
         * 
         * @return The bytes for processInstanceId.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
                getProcessInstanceIdBytes() {
            java.lang.Object ref = processInstanceId_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (java.lang.String) ref);
                processInstanceId_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 2;
        @SuppressWarnings("serial")
        private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                com.google.protobuf.LazyStringArrayList.emptyList();

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        public com.google.protobuf.ProtocolStringList
                getTimerInstanceIdList() {
            return timerInstanceId_;
        }

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
        }

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public java.lang.String getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
        }

        /**
         * <code>repeated string timer_instance_id = 2;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        public com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index) {
            return timerInstanceId_.getByteString(index);
        }

        public static final int TIMER_INSTANCE_REFERENCE_FIELD_NUMBER = 3;

        private static final class TimerInstanceReferenceDefaultEntryHolder {
            static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
                    com.google.protobuf.MapEntry.<java.lang.String, java.lang.String> newDefaultInstance(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_SubProcessNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "",
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "");
        }

        @SuppressWarnings("serial")
        private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

        private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                internalGetTimerInstanceReference() {
            if (timerInstanceReference_ == null) {
                return com.google.protobuf.MapField.emptyMapField(
                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
            }
            return timerInstanceReference_;
        }

        public int getTimerInstanceReferenceCount() {
            return internalGetTimerInstanceReference().getMap().size();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public boolean containsTimerInstanceReference(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            return internalGetTimerInstanceReference().getMap().containsKey(key);
        }

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Override
        @java.lang.Deprecated
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
            return getTimerInstanceReferenceMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
            return internalGetTimerInstanceReference().getMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            return map.containsKey(key) ? map.get(key) : defaultValue;
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            if (!map.containsKey(key)) {
                throw new java.lang.IllegalArgumentException();
            }
            return map.get(key);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            if (((bitField0_ & 0x00000001) != 0)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, processInstanceId_);
            }
            for (int i = 0; i < timerInstanceId_.size(); i++) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 2, timerInstanceId_.getRaw(i));
            }
            com.google.protobuf.GeneratedMessageV3
                    .serializeStringMapTo(
                            output,
                            internalGetTimerInstanceReference(),
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry,
                            3);
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;

            size = 0;
            if (((bitField0_ & 0x00000001) != 0)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, processInstanceId_);
            }
            {
                int dataSize = 0;
                for (int i = 0; i < timerInstanceId_.size(); i++) {
                    dataSize += computeStringSizeNoTag(timerInstanceId_.getRaw(i));
                }
                size += dataSize;
                size += 1 * getTimerInstanceIdList().size();
            }
            for (java.util.Map.Entry<java.lang.String, java.lang.String> entry : internalGetTimerInstanceReference().getMap().entrySet()) {
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = TimerInstanceReferenceDefaultEntryHolder.defaultEntry.newBuilderForType()
                        .setKey(entry.getKey())
                        .setValue(entry.getValue())
                        .build();
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(3, timerInstanceReference__);
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent)) {
                return super.equals(obj);
            }
            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent other =
                    (org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent) obj;

            if (hasProcessInstanceId() != other.hasProcessInstanceId())
                return false;
            if (hasProcessInstanceId()) {
                if (!getProcessInstanceId()
                        .equals(other.getProcessInstanceId()))
                    return false;
            }
            if (!getTimerInstanceIdList()
                    .equals(other.getTimerInstanceIdList()))
                return false;
            if (!internalGetTimerInstanceReference().equals(
                    other.internalGetTimerInstanceReference()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasProcessInstanceId()) {
                hash = (37 * hash) + PROCESS_INSTANCE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getProcessInstanceId().hashCode();
            }
            if (getTimerInstanceIdCount() > 0) {
                hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getTimerInstanceIdList().hashCode();
            }
            if (!internalGetTimerInstanceReference().getMap().isEmpty()) {
                hash = (37 * hash) + TIMER_INSTANCE_REFERENCE_FIELD_NUMBER;
                hash = (53 * hash) + internalGetTimerInstanceReference().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder()
                    : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.jbpm.flow.serialization.protobuf.SubProcessNodeInstanceContent}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:org.jbpm.flow.serialization.protobuf.SubProcessNodeInstanceContent)
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContentOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                    getDescriptor() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_SubProcessNodeInstanceContent_descriptor;
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                    int number) {
                switch (number) {
                    case 3:
                        return internalGetTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
                    int number) {
                switch (number) {
                    case 3:
                        return internalGetMutableTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_SubProcessNodeInstanceContent_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent.class,
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent.Builder.class);
            }

            // Construct using org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent.newBuilder()
            private Builder() {

            }

            private Builder(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);

            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                processInstanceId_ = "";
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                internalGetMutableTimerInstanceReference().clear();
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
                    getDescriptorForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_SubProcessNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent getDefaultInstanceForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent.getDefaultInstance();
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent build() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent buildPartial() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent result =
                        new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent result) {
                int from_bitField0_ = bitField0_;
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.processInstanceId_ = processInstanceId_;
                    to_bitField0_ |= 0x00000001;
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    timerInstanceId_.makeImmutable();
                    result.timerInstanceId_ = timerInstanceId_;
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.timerInstanceReference_ = internalGetTimerInstanceReference();
                    result.timerInstanceReference_.makeImmutable();
                }
                result.bitField0_ |= to_bitField0_;
            }

            @java.lang.Override
            public Builder clone() {
                return super.clone();
            }

            @java.lang.Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.setField(field, value);
            }

            @java.lang.Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @java.lang.Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @java.lang.Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, java.lang.Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @java.lang.Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.addRepeatedField(field, value);
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent) {
                    return mergeFrom((org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent other) {
                if (other == org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent.getDefaultInstance())
                    return this;
                if (other.hasProcessInstanceId()) {
                    processInstanceId_ = other.processInstanceId_;
                    bitField0_ |= 0x00000001;
                    onChanged();
                }
                if (!other.timerInstanceId_.isEmpty()) {
                    if (timerInstanceId_.isEmpty()) {
                        timerInstanceId_ = other.timerInstanceId_;
                        bitField0_ |= 0x00000002;
                    } else {
                        ensureTimerInstanceIdIsMutable();
                        timerInstanceId_.addAll(other.timerInstanceId_);
                    }
                    onChanged();
                }
                internalGetMutableTimerInstanceReference().mergeFrom(
                        other.internalGetTimerInstanceReference());
                bitField0_ |= 0x00000004;
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                processInstanceId_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00000001;
                                break;
                            } // case 10
                            case 18: {
                                java.lang.String s = input.readStringRequireUtf8();
                                ensureTimerInstanceIdIsMutable();
                                timerInstanceId_.add(s);
                                break;
                            } // case 18
                            case 26: {
                                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = input.readMessage(
                                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                                internalGetMutableTimerInstanceReference().getMutableMap().put(
                                        timerInstanceReference__.getKey(), timerInstanceReference__.getValue());
                                bitField0_ |= 0x00000004;
                                break;
                            } // case 26
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }

            private int bitField0_;

            private java.lang.Object processInstanceId_ = "";

            /**
             * <code>optional string process_instance_id = 1;</code>
             * 
             * @return Whether the processInstanceId field is set.
             */
            public boolean hasProcessInstanceId() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>optional string process_instance_id = 1;</code>
             * 
             * @return The processInstanceId.
             */
            public java.lang.String getProcessInstanceId() {
                java.lang.Object ref = processInstanceId_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    processInstanceId_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>optional string process_instance_id = 1;</code>
             * 
             * @return The bytes for processInstanceId.
             */
            public com.google.protobuf.ByteString
                    getProcessInstanceIdBytes() {
                java.lang.Object ref = processInstanceId_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    processInstanceId_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>optional string process_instance_id = 1;</code>
             * 
             * @param value The processInstanceId to set.
             * @return This builder for chaining.
             */
            public Builder setProcessInstanceId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                processInstanceId_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>optional string process_instance_id = 1;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearProcessInstanceId() {
                processInstanceId_ = getDefaultInstance().getProcessInstanceId();
                bitField0_ = (bitField0_ & ~0x00000001);
                onChanged();
                return this;
            }

            /**
             * <code>optional string process_instance_id = 1;</code>
             * 
             * @param value The bytes for processInstanceId to set.
             * @return This builder for chaining.
             */
            public Builder setProcessInstanceIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                processInstanceId_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();

            private void ensureTimerInstanceIdIsMutable() {
                if (!timerInstanceId_.isModifiable()) {
                    timerInstanceId_ = new com.google.protobuf.LazyStringArrayList(timerInstanceId_);
                }
                bitField0_ |= 0x00000002;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @return A list containing the timerInstanceId.
             */
            public com.google.protobuf.ProtocolStringList
                    getTimerInstanceIdList() {
                timerInstanceId_.makeImmutable();
                return timerInstanceId_;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @return The count of timerInstanceId.
             */
            public int getTimerInstanceIdCount() {
                return timerInstanceId_.size();
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param index The index of the element to return.
             * @return The timerInstanceId at the given index.
             */
            public java.lang.String getTimerInstanceId(int index) {
                return timerInstanceId_.get(index);
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param index The index of the value to return.
             * @return The bytes of the timerInstanceId at the given index.
             */
            public com.google.protobuf.ByteString
                    getTimerInstanceIdBytes(int index) {
                return timerInstanceId_.getByteString(index);
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param index The index to set the value at.
             * @param value The timerInstanceId to set.
             * @return This builder for chaining.
             */
            public Builder setTimerInstanceId(
                    int index, java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.set(index, value);
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param value The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param values The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addAllTimerInstanceId(
                    java.lang.Iterable<java.lang.String> values) {
                ensureTimerInstanceIdIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(
                        values, timerInstanceId_);
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearTimerInstanceId() {
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                bitField0_ = (bitField0_ & ~0x00000002);
                ;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 2;</code>
             * 
             * @param value The bytes of the timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    return com.google.protobuf.MapField.emptyMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                return timerInstanceReference_;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetMutableTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    timerInstanceReference_ = com.google.protobuf.MapField.newMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                if (!timerInstanceReference_.isMutable()) {
                    timerInstanceReference_ = timerInstanceReference_.copy();
                }
                bitField0_ |= 0x00000004;
                onChanged();
                return timerInstanceReference_;
            }

            public int getTimerInstanceReferenceCount() {
                return internalGetTimerInstanceReference().getMap().size();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public boolean containsTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                return internalGetTimerInstanceReference().getMap().containsKey(key);
            }

            /**
             * Use {@link #getTimerInstanceReferenceMap()} instead.
             */
            @java.lang.Override
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
                return getTimerInstanceReferenceMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
                return internalGetTimerInstanceReference().getMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public /* nullable */
            java.lang.String getTimerInstanceReferenceOrDefault(
                    java.lang.String key,
                    /* nullable */
                    java.lang.String defaultValue) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                return map.containsKey(key) ? map.get(key) : defaultValue;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public java.lang.String getTimerInstanceReferenceOrThrow(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                if (!map.containsKey(key)) {
                    throw new java.lang.IllegalArgumentException();
                }
                return map.get(key);
            }

            public Builder clearTimerInstanceReference() {
                bitField0_ = (bitField0_ & ~0x00000004);
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .clear();
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder removeTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .remove(key);
                return this;
            }

            /**
             * Use alternate mutation accessors instead.
             */
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String>
                    getMutableTimerInstanceReference() {
                bitField0_ |= 0x00000004;
                return internalGetMutableTimerInstanceReference().getMutableMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder putTimerInstanceReference(
                    java.lang.String key,
                    java.lang.String value) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                if (value == null) {
                    throw new NullPointerException("map value");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .put(key, value);
                bitField0_ |= 0x00000004;
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder putAllTimerInstanceReference(
                    java.util.Map<java.lang.String, java.lang.String> values) {
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .putAll(values);
                bitField0_ |= 0x00000004;
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }

            // @@protoc_insertion_point(builder_scope:org.jbpm.flow.serialization.protobuf.SubProcessNodeInstanceContent)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.flow.serialization.protobuf.SubProcessNodeInstanceContent)
        private static final org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent();
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<SubProcessNodeInstanceContent> PARSER = new com.google.protobuf.AbstractParser<SubProcessNodeInstanceContent>() {
            @java.lang.Override
            public SubProcessNodeInstanceContent parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e)
                            .setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<SubProcessNodeInstanceContent> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<SubProcessNodeInstanceContent> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.SubProcessNodeInstanceContent getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface MilestoneNodeInstanceContentOrBuilder extends
            // @@protoc_insertion_point(interface_extends:org.jbpm.flow.serialization.protobuf.MilestoneNodeInstanceContent)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.String>
                getTimerInstanceIdList();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        java.lang.String getTimerInstanceId(int index);

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index);

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        int getTimerInstanceReferenceCount();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        boolean containsTimerInstanceReference(
                java.lang.String key);

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Deprecated
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReference();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReferenceMap();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue);

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key);
    }

    /**
     * Protobuf type {@code org.jbpm.flow.serialization.protobuf.MilestoneNodeInstanceContent}
     */
    public static final class MilestoneNodeInstanceContent extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:org.jbpm.flow.serialization.protobuf.MilestoneNodeInstanceContent)
            MilestoneNodeInstanceContentOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use MilestoneNodeInstanceContent.newBuilder() to construct.
        private MilestoneNodeInstanceContent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private MilestoneNodeInstanceContent() {
            timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(
                UnusedPrivateParameter unused) {
            return new MilestoneNodeInstanceContent();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_MilestoneNodeInstanceContent_descriptor;
        }

        @SuppressWarnings({ "rawtypes" })
        @java.lang.Override
        protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                int number) {
            switch (number) {
                case 2:
                    return internalGetTimerInstanceReference();
                default:
                    throw new RuntimeException(
                            "Invalid map field number: " + number);
            }
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_MilestoneNodeInstanceContent_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent.class,
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent.Builder.class);
        }

        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                com.google.protobuf.LazyStringArrayList.emptyList();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        public com.google.protobuf.ProtocolStringList
                getTimerInstanceIdList() {
            return timerInstanceId_;
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public java.lang.String getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        public com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index) {
            return timerInstanceId_.getByteString(index);
        }

        public static final int TIMER_INSTANCE_REFERENCE_FIELD_NUMBER = 2;

        private static final class TimerInstanceReferenceDefaultEntryHolder {
            static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
                    com.google.protobuf.MapEntry.<java.lang.String, java.lang.String> newDefaultInstance(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_MilestoneNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "",
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "");
        }

        @SuppressWarnings("serial")
        private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

        private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                internalGetTimerInstanceReference() {
            if (timerInstanceReference_ == null) {
                return com.google.protobuf.MapField.emptyMapField(
                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
            }
            return timerInstanceReference_;
        }

        public int getTimerInstanceReferenceCount() {
            return internalGetTimerInstanceReference().getMap().size();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        @java.lang.Override
        public boolean containsTimerInstanceReference(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            return internalGetTimerInstanceReference().getMap().containsKey(key);
        }

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Override
        @java.lang.Deprecated
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
            return getTimerInstanceReferenceMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        @java.lang.Override
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
            return internalGetTimerInstanceReference().getMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        @java.lang.Override
        public /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            return map.containsKey(key) ? map.get(key) : defaultValue;
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        @java.lang.Override
        public java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            if (!map.containsKey(key)) {
                throw new java.lang.IllegalArgumentException();
            }
            return map.get(key);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            for (int i = 0; i < timerInstanceId_.size(); i++) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, timerInstanceId_.getRaw(i));
            }
            com.google.protobuf.GeneratedMessageV3
                    .serializeStringMapTo(
                            output,
                            internalGetTimerInstanceReference(),
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry,
                            2);
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;

            size = 0;
            {
                int dataSize = 0;
                for (int i = 0; i < timerInstanceId_.size(); i++) {
                    dataSize += computeStringSizeNoTag(timerInstanceId_.getRaw(i));
                }
                size += dataSize;
                size += 1 * getTimerInstanceIdList().size();
            }
            for (java.util.Map.Entry<java.lang.String, java.lang.String> entry : internalGetTimerInstanceReference().getMap().entrySet()) {
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = TimerInstanceReferenceDefaultEntryHolder.defaultEntry.newBuilderForType()
                        .setKey(entry.getKey())
                        .setValue(entry.getValue())
                        .build();
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(2, timerInstanceReference__);
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent)) {
                return super.equals(obj);
            }
            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent other =
                    (org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent) obj;

            if (!getTimerInstanceIdList()
                    .equals(other.getTimerInstanceIdList()))
                return false;
            if (!internalGetTimerInstanceReference().equals(
                    other.internalGetTimerInstanceReference()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (getTimerInstanceIdCount() > 0) {
                hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getTimerInstanceIdList().hashCode();
            }
            if (!internalGetTimerInstanceReference().getMap().isEmpty()) {
                hash = (37 * hash) + TIMER_INSTANCE_REFERENCE_FIELD_NUMBER;
                hash = (53 * hash) + internalGetTimerInstanceReference().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder()
                    : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.jbpm.flow.serialization.protobuf.MilestoneNodeInstanceContent}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:org.jbpm.flow.serialization.protobuf.MilestoneNodeInstanceContent)
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContentOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                    getDescriptor() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_MilestoneNodeInstanceContent_descriptor;
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                    int number) {
                switch (number) {
                    case 2:
                        return internalGetTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
                    int number) {
                switch (number) {
                    case 2:
                        return internalGetMutableTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_MilestoneNodeInstanceContent_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent.class,
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent.Builder.class);
            }

            // Construct using org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent.newBuilder()
            private Builder() {

            }

            private Builder(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);

            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                internalGetMutableTimerInstanceReference().clear();
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
                    getDescriptorForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_MilestoneNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent getDefaultInstanceForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent.getDefaultInstance();
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent build() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent buildPartial() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent result =
                        new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    timerInstanceId_.makeImmutable();
                    result.timerInstanceId_ = timerInstanceId_;
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.timerInstanceReference_ = internalGetTimerInstanceReference();
                    result.timerInstanceReference_.makeImmutable();
                }
            }

            @java.lang.Override
            public Builder clone() {
                return super.clone();
            }

            @java.lang.Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.setField(field, value);
            }

            @java.lang.Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @java.lang.Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @java.lang.Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, java.lang.Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @java.lang.Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.addRepeatedField(field, value);
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent) {
                    return mergeFrom((org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent other) {
                if (other == org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent.getDefaultInstance())
                    return this;
                if (!other.timerInstanceId_.isEmpty()) {
                    if (timerInstanceId_.isEmpty()) {
                        timerInstanceId_ = other.timerInstanceId_;
                        bitField0_ |= 0x00000001;
                    } else {
                        ensureTimerInstanceIdIsMutable();
                        timerInstanceId_.addAll(other.timerInstanceId_);
                    }
                    onChanged();
                }
                internalGetMutableTimerInstanceReference().mergeFrom(
                        other.internalGetTimerInstanceReference());
                bitField0_ |= 0x00000002;
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                java.lang.String s = input.readStringRequireUtf8();
                                ensureTimerInstanceIdIsMutable();
                                timerInstanceId_.add(s);
                                break;
                            } // case 10
                            case 18: {
                                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = input.readMessage(
                                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                                internalGetMutableTimerInstanceReference().getMutableMap().put(
                                        timerInstanceReference__.getKey(), timerInstanceReference__.getValue());
                                bitField0_ |= 0x00000002;
                                break;
                            } // case 18
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }

            private int bitField0_;

            private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();

            private void ensureTimerInstanceIdIsMutable() {
                if (!timerInstanceId_.isModifiable()) {
                    timerInstanceId_ = new com.google.protobuf.LazyStringArrayList(timerInstanceId_);
                }
                bitField0_ |= 0x00000001;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return A list containing the timerInstanceId.
             */
            public com.google.protobuf.ProtocolStringList
                    getTimerInstanceIdList() {
                timerInstanceId_.makeImmutable();
                return timerInstanceId_;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return The count of timerInstanceId.
             */
            public int getTimerInstanceIdCount() {
                return timerInstanceId_.size();
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index of the element to return.
             * @return The timerInstanceId at the given index.
             */
            public java.lang.String getTimerInstanceId(int index) {
                return timerInstanceId_.get(index);
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index of the value to return.
             * @return The bytes of the timerInstanceId at the given index.
             */
            public com.google.protobuf.ByteString
                    getTimerInstanceIdBytes(int index) {
                return timerInstanceId_.getByteString(index);
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index to set the value at.
             * @param value The timerInstanceId to set.
             * @return This builder for chaining.
             */
            public Builder setTimerInstanceId(
                    int index, java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.set(index, value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param value The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param values The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addAllTimerInstanceId(
                    java.lang.Iterable<java.lang.String> values) {
                ensureTimerInstanceIdIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(
                        values, timerInstanceId_);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearTimerInstanceId() {
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                bitField0_ = (bitField0_ & ~0x00000001);
                ;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param value The bytes of the timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    return com.google.protobuf.MapField.emptyMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                return timerInstanceReference_;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetMutableTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    timerInstanceReference_ = com.google.protobuf.MapField.newMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                if (!timerInstanceReference_.isMutable()) {
                    timerInstanceReference_ = timerInstanceReference_.copy();
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return timerInstanceReference_;
            }

            public int getTimerInstanceReferenceCount() {
                return internalGetTimerInstanceReference().getMap().size();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
             */
            @java.lang.Override
            public boolean containsTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                return internalGetTimerInstanceReference().getMap().containsKey(key);
            }

            /**
             * Use {@link #getTimerInstanceReferenceMap()} instead.
             */
            @java.lang.Override
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
                return getTimerInstanceReferenceMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
             */
            @java.lang.Override
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
                return internalGetTimerInstanceReference().getMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
             */
            @java.lang.Override
            public /* nullable */
            java.lang.String getTimerInstanceReferenceOrDefault(
                    java.lang.String key,
                    /* nullable */
                    java.lang.String defaultValue) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                return map.containsKey(key) ? map.get(key) : defaultValue;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
             */
            @java.lang.Override
            public java.lang.String getTimerInstanceReferenceOrThrow(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                if (!map.containsKey(key)) {
                    throw new java.lang.IllegalArgumentException();
                }
                return map.get(key);
            }

            public Builder clearTimerInstanceReference() {
                bitField0_ = (bitField0_ & ~0x00000002);
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .clear();
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
             */
            public Builder removeTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .remove(key);
                return this;
            }

            /**
             * Use alternate mutation accessors instead.
             */
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String>
                    getMutableTimerInstanceReference() {
                bitField0_ |= 0x00000002;
                return internalGetMutableTimerInstanceReference().getMutableMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
             */
            public Builder putTimerInstanceReference(
                    java.lang.String key,
                    java.lang.String value) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                if (value == null) {
                    throw new NullPointerException("map value");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .put(key, value);
                bitField0_ |= 0x00000002;
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
             */
            public Builder putAllTimerInstanceReference(
                    java.util.Map<java.lang.String, java.lang.String> values) {
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .putAll(values);
                bitField0_ |= 0x00000002;
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }

            // @@protoc_insertion_point(builder_scope:org.jbpm.flow.serialization.protobuf.MilestoneNodeInstanceContent)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.flow.serialization.protobuf.MilestoneNodeInstanceContent)
        private static final org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent();
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<MilestoneNodeInstanceContent> PARSER = new com.google.protobuf.AbstractParser<MilestoneNodeInstanceContent>() {
            @java.lang.Override
            public MilestoneNodeInstanceContent parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e)
                            .setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<MilestoneNodeInstanceContent> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<MilestoneNodeInstanceContent> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.MilestoneNodeInstanceContent getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface EventNodeInstanceContentOrBuilder extends
            // @@protoc_insertion_point(interface_extends:org.jbpm.flow.serialization.protobuf.EventNodeInstanceContent)
            com.google.protobuf.MessageOrBuilder {
    }

    /**
     * Protobuf type {@code org.jbpm.flow.serialization.protobuf.EventNodeInstanceContent}
     */
    public static final class EventNodeInstanceContent extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:org.jbpm.flow.serialization.protobuf.EventNodeInstanceContent)
            EventNodeInstanceContentOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use EventNodeInstanceContent.newBuilder() to construct.
        private EventNodeInstanceContent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private EventNodeInstanceContent() {
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(
                UnusedPrivateParameter unused) {
            return new EventNodeInstanceContent();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_EventNodeInstanceContent_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_EventNodeInstanceContent_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent.class,
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent.Builder.class);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;

            size = 0;
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent)) {
                return super.equals(obj);
            }
            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent other =
                    (org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent) obj;

            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder()
                    : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.jbpm.flow.serialization.protobuf.EventNodeInstanceContent}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:org.jbpm.flow.serialization.protobuf.EventNodeInstanceContent)
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContentOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                    getDescriptor() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_EventNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_EventNodeInstanceContent_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent.class,
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent.Builder.class);
            }

            // Construct using org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent.newBuilder()
            private Builder() {

            }

            private Builder(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);

            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
                    getDescriptorForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_EventNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent getDefaultInstanceForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent.getDefaultInstance();
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent build() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent buildPartial() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent result =
                        new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent(this);
                onBuilt();
                return result;
            }

            @java.lang.Override
            public Builder clone() {
                return super.clone();
            }

            @java.lang.Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.setField(field, value);
            }

            @java.lang.Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @java.lang.Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @java.lang.Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, java.lang.Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @java.lang.Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.addRepeatedField(field, value);
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent) {
                    return mergeFrom((org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent other) {
                if (other == org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent.getDefaultInstance())
                    return this;
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }

            // @@protoc_insertion_point(builder_scope:org.jbpm.flow.serialization.protobuf.EventNodeInstanceContent)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.flow.serialization.protobuf.EventNodeInstanceContent)
        private static final org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent();
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<EventNodeInstanceContent> PARSER = new com.google.protobuf.AbstractParser<EventNodeInstanceContent>() {
            @java.lang.Override
            public EventNodeInstanceContent parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e)
                            .setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<EventNodeInstanceContent> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<EventNodeInstanceContent> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventNodeInstanceContent getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface TimerNodeInstanceContentOrBuilder extends
            // @@protoc_insertion_point(interface_extends:org.jbpm.flow.serialization.protobuf.TimerNodeInstanceContent)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>optional string timer_id = 1;</code>
         * 
         * @return Whether the timerId field is set.
         */
        boolean hasTimerId();

        /**
         * <code>optional string timer_id = 1;</code>
         * 
         * @return The timerId.
         */
        java.lang.String getTimerId();

        /**
         * <code>optional string timer_id = 1;</code>
         * 
         * @return The bytes for timerId.
         */
        com.google.protobuf.ByteString
                getTimerIdBytes();
    }

    /**
     * Protobuf type {@code org.jbpm.flow.serialization.protobuf.TimerNodeInstanceContent}
     */
    public static final class TimerNodeInstanceContent extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:org.jbpm.flow.serialization.protobuf.TimerNodeInstanceContent)
            TimerNodeInstanceContentOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use TimerNodeInstanceContent.newBuilder() to construct.
        private TimerNodeInstanceContent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private TimerNodeInstanceContent() {
            timerId_ = "";
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(
                UnusedPrivateParameter unused) {
            return new TimerNodeInstanceContent();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_TimerNodeInstanceContent_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_TimerNodeInstanceContent_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent.class,
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent.Builder.class);
        }

        private int bitField0_;
        public static final int TIMER_ID_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private volatile java.lang.Object timerId_ = "";

        /**
         * <code>optional string timer_id = 1;</code>
         * 
         * @return Whether the timerId field is set.
         */
        @java.lang.Override
        public boolean hasTimerId() {
            return ((bitField0_ & 0x00000001) != 0);
        }

        /**
         * <code>optional string timer_id = 1;</code>
         * 
         * @return The timerId.
         */
        @java.lang.Override
        public java.lang.String getTimerId() {
            java.lang.Object ref = timerId_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                timerId_ = s;
                return s;
            }
        }

        /**
         * <code>optional string timer_id = 1;</code>
         * 
         * @return The bytes for timerId.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
                getTimerIdBytes() {
            java.lang.Object ref = timerId_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (java.lang.String) ref);
                timerId_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            if (((bitField0_ & 0x00000001) != 0)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, timerId_);
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;

            size = 0;
            if (((bitField0_ & 0x00000001) != 0)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, timerId_);
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent)) {
                return super.equals(obj);
            }
            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent other =
                    (org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent) obj;

            if (hasTimerId() != other.hasTimerId())
                return false;
            if (hasTimerId()) {
                if (!getTimerId()
                        .equals(other.getTimerId()))
                    return false;
            }
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (hasTimerId()) {
                hash = (37 * hash) + TIMER_ID_FIELD_NUMBER;
                hash = (53 * hash) + getTimerId().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder()
                    : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.jbpm.flow.serialization.protobuf.TimerNodeInstanceContent}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:org.jbpm.flow.serialization.protobuf.TimerNodeInstanceContent)
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContentOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                    getDescriptor() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_TimerNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_TimerNodeInstanceContent_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent.class,
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent.Builder.class);
            }

            // Construct using org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent.newBuilder()
            private Builder() {

            }

            private Builder(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);

            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                timerId_ = "";
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
                    getDescriptorForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_TimerNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent getDefaultInstanceForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent.getDefaultInstance();
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent build() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent buildPartial() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent result =
                        new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent result) {
                int from_bitField0_ = bitField0_;
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.timerId_ = timerId_;
                    to_bitField0_ |= 0x00000001;
                }
                result.bitField0_ |= to_bitField0_;
            }

            @java.lang.Override
            public Builder clone() {
                return super.clone();
            }

            @java.lang.Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.setField(field, value);
            }

            @java.lang.Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @java.lang.Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @java.lang.Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, java.lang.Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @java.lang.Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.addRepeatedField(field, value);
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent) {
                    return mergeFrom((org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent other) {
                if (other == org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent.getDefaultInstance())
                    return this;
                if (other.hasTimerId()) {
                    timerId_ = other.timerId_;
                    bitField0_ |= 0x00000001;
                    onChanged();
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                timerId_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00000001;
                                break;
                            } // case 10
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }

            private int bitField0_;

            private java.lang.Object timerId_ = "";

            /**
             * <code>optional string timer_id = 1;</code>
             * 
             * @return Whether the timerId field is set.
             */
            public boolean hasTimerId() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>optional string timer_id = 1;</code>
             * 
             * @return The timerId.
             */
            public java.lang.String getTimerId() {
                java.lang.Object ref = timerId_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    timerId_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>optional string timer_id = 1;</code>
             * 
             * @return The bytes for timerId.
             */
            public com.google.protobuf.ByteString
                    getTimerIdBytes() {
                java.lang.Object ref = timerId_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    timerId_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>optional string timer_id = 1;</code>
             * 
             * @param value The timerId to set.
             * @return This builder for chaining.
             */
            public Builder setTimerId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                timerId_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>optional string timer_id = 1;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearTimerId() {
                timerId_ = getDefaultInstance().getTimerId();
                bitField0_ = (bitField0_ & ~0x00000001);
                onChanged();
                return this;
            }

            /**
             * <code>optional string timer_id = 1;</code>
             * 
             * @param value The bytes for timerId to set.
             * @return This builder for chaining.
             */
            public Builder setTimerIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                timerId_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }

            // @@protoc_insertion_point(builder_scope:org.jbpm.flow.serialization.protobuf.TimerNodeInstanceContent)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.flow.serialization.protobuf.TimerNodeInstanceContent)
        private static final org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent();
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<TimerNodeInstanceContent> PARSER = new com.google.protobuf.AbstractParser<TimerNodeInstanceContent>() {
            @java.lang.Override
            public TimerNodeInstanceContent parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e)
                            .setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<TimerNodeInstanceContent> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<TimerNodeInstanceContent> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.TimerNodeInstanceContent getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface JoinNodeInstanceContentOrBuilder extends
            // @@protoc_insertion_point(interface_extends:org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
         */
        java.util.List<org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger>
                getTriggerList();

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
         */
        org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger getTrigger(int index);

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
         */
        int getTriggerCount();

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
         */
        java.util.List<? extends org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTriggerOrBuilder>
                getTriggerOrBuilderList();

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
         */
        org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTriggerOrBuilder getTriggerOrBuilder(
                int index);
    }

    /**
     * Protobuf type {@code org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent}
     */
    public static final class JoinNodeInstanceContent extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent)
            JoinNodeInstanceContentOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use JoinNodeInstanceContent.newBuilder() to construct.
        private JoinNodeInstanceContent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private JoinNodeInstanceContent() {
            trigger_ = java.util.Collections.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(
                UnusedPrivateParameter unused) {
            return new JoinNodeInstanceContent();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.class,
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.Builder.class);
        }

        public interface JoinTriggerOrBuilder extends
                // @@protoc_insertion_point(interface_extends:org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger)
                com.google.protobuf.MessageOrBuilder {

            /**
             * <code>optional string node_id = 1;</code>
             * 
             * @return Whether the nodeId field is set.
             */
            boolean hasNodeId();

            /**
             * <code>optional string node_id = 1;</code>
             * 
             * @return The nodeId.
             */
            java.lang.String getNodeId();

            /**
             * <code>optional string node_id = 1;</code>
             * 
             * @return The bytes for nodeId.
             */
            com.google.protobuf.ByteString
                    getNodeIdBytes();

            /**
             * <code>optional int32 counter = 2;</code>
             * 
             * @return Whether the counter field is set.
             */
            boolean hasCounter();

            /**
             * <code>optional int32 counter = 2;</code>
             * 
             * @return The counter.
             */
            int getCounter();
        }

        /**
         * Protobuf type {@code org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger}
         */
        public static final class JoinTrigger extends
                com.google.protobuf.GeneratedMessageV3 implements
                // @@protoc_insertion_point(message_implements:org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger)
                JoinTriggerOrBuilder {
            private static final long serialVersionUID = 0L;

            // Use JoinTrigger.newBuilder() to construct.
            private JoinTrigger(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
                super(builder);
            }

            private JoinTrigger() {
                nodeId_ = "";
            }

            @java.lang.Override
            @SuppressWarnings({ "unused" })
            protected java.lang.Object newInstance(
                    UnusedPrivateParameter unused) {
                return new JoinTrigger();
            }

            public static final com.google.protobuf.Descriptors.Descriptor
                    getDescriptor() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_JoinTrigger_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_JoinTrigger_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.class,
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.Builder.class);
            }

            private int bitField0_;
            public static final int NODE_ID_FIELD_NUMBER = 1;
            @SuppressWarnings("serial")
            private volatile java.lang.Object nodeId_ = "";

            /**
             * <code>optional string node_id = 1;</code>
             * 
             * @return Whether the nodeId field is set.
             */
            @java.lang.Override
            public boolean hasNodeId() {
                return ((bitField0_ & 0x00000001) != 0);
            }

            /**
             * <code>optional string node_id = 1;</code>
             * 
             * @return The nodeId.
             */
            @java.lang.Override
            public java.lang.String getNodeId() {
                java.lang.Object ref = nodeId_;
                if (ref instanceof java.lang.String) {
                    return (java.lang.String) ref;
                } else {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    nodeId_ = s;
                    return s;
                }
            }

            /**
             * <code>optional string node_id = 1;</code>
             * 
             * @return The bytes for nodeId.
             */
            @java.lang.Override
            public com.google.protobuf.ByteString
                    getNodeIdBytes() {
                java.lang.Object ref = nodeId_;
                if (ref instanceof java.lang.String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    nodeId_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            public static final int COUNTER_FIELD_NUMBER = 2;
            private int counter_ = 0;

            /**
             * <code>optional int32 counter = 2;</code>
             * 
             * @return Whether the counter field is set.
             */
            @java.lang.Override
            public boolean hasCounter() {
                return ((bitField0_ & 0x00000002) != 0);
            }

            /**
             * <code>optional int32 counter = 2;</code>
             * 
             * @return The counter.
             */
            @java.lang.Override
            public int getCounter() {
                return counter_;
            }

            private byte memoizedIsInitialized = -1;

            @java.lang.Override
            public final boolean isInitialized() {
                byte isInitialized = memoizedIsInitialized;
                if (isInitialized == 1)
                    return true;
                if (isInitialized == 0)
                    return false;

                memoizedIsInitialized = 1;
                return true;
            }

            @java.lang.Override
            public void writeTo(com.google.protobuf.CodedOutputStream output)
                    throws java.io.IOException {
                if (((bitField0_ & 0x00000001) != 0)) {
                    com.google.protobuf.GeneratedMessageV3.writeString(output, 1, nodeId_);
                }
                if (((bitField0_ & 0x00000002) != 0)) {
                    output.writeInt32(2, counter_);
                }
                getUnknownFields().writeTo(output);
            }

            @java.lang.Override
            public int getSerializedSize() {
                int size = memoizedSize;
                if (size != -1)
                    return size;

                size = 0;
                if (((bitField0_ & 0x00000001) != 0)) {
                    size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, nodeId_);
                }
                if (((bitField0_ & 0x00000002) != 0)) {
                    size += com.google.protobuf.CodedOutputStream
                            .computeInt32Size(2, counter_);
                }
                size += getUnknownFields().getSerializedSize();
                memoizedSize = size;
                return size;
            }

            @java.lang.Override
            public boolean equals(final java.lang.Object obj) {
                if (obj == this) {
                    return true;
                }
                if (!(obj instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger)) {
                    return super.equals(obj);
                }
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger other =
                        (org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger) obj;

                if (hasNodeId() != other.hasNodeId())
                    return false;
                if (hasNodeId()) {
                    if (!getNodeId()
                            .equals(other.getNodeId()))
                        return false;
                }
                if (hasCounter() != other.hasCounter())
                    return false;
                if (hasCounter()) {
                    if (getCounter() != other.getCounter())
                        return false;
                }
                if (!getUnknownFields().equals(other.getUnknownFields()))
                    return false;
                return true;
            }

            @java.lang.Override
            public int hashCode() {
                if (memoizedHashCode != 0) {
                    return memoizedHashCode;
                }
                int hash = 41;
                hash = (19 * hash) + getDescriptor().hashCode();
                if (hasNodeId()) {
                    hash = (37 * hash) + NODE_ID_FIELD_NUMBER;
                    hash = (53 * hash) + getNodeId().hashCode();
                }
                if (hasCounter()) {
                    hash = (37 * hash) + COUNTER_FIELD_NUMBER;
                    hash = (53 * hash) + getCounter();
                }
                hash = (29 * hash) + getUnknownFields().hashCode();
                memoizedHashCode = hash;
                return hash;
            }

            public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger parseFrom(
                    java.nio.ByteBuffer data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }

            public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger parseFrom(
                    java.nio.ByteBuffer data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }

            public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger parseFrom(
                    com.google.protobuf.ByteString data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }

            public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger parseFrom(
                    com.google.protobuf.ByteString data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }

            public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger parseFrom(byte[] data)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data);
            }

            public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger parseFrom(
                    byte[] data,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                return PARSER.parseFrom(data, extensionRegistry);
            }

            public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger parseFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }

            public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger parseFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }

            public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger parseDelimitedFrom(java.io.InputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input);
            }

            public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger parseDelimitedFrom(
                    java.io.InputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
            }

            public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger parseFrom(
                    com.google.protobuf.CodedInputStream input)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input);
            }

            public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger parseFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                return com.google.protobuf.GeneratedMessageV3
                        .parseWithIOException(PARSER, input, extensionRegistry);
            }

            @java.lang.Override
            public Builder newBuilderForType() {
                return newBuilder();
            }

            public static Builder newBuilder() {
                return DEFAULT_INSTANCE.toBuilder();
            }

            public static Builder newBuilder(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger prototype) {
                return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
            }

            @java.lang.Override
            public Builder toBuilder() {
                return this == DEFAULT_INSTANCE
                        ? new Builder()
                        : new Builder().mergeFrom(this);
            }

            @java.lang.Override
            protected Builder newBuilderForType(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                Builder builder = new Builder(parent);
                return builder;
            }

            /**
             * Protobuf type {@code org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger}
             */
            public static final class Builder extends
                    com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                    // @@protoc_insertion_point(builder_implements:org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger)
                    org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTriggerOrBuilder {
                public static final com.google.protobuf.Descriptors.Descriptor
                        getDescriptor() {
                    return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_JoinTrigger_descriptor;
                }

                @java.lang.Override
                protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                        internalGetFieldAccessorTable() {
                    return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_JoinTrigger_fieldAccessorTable
                            .ensureFieldAccessorsInitialized(
                                    org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.class,
                                    org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.Builder.class);
                }

                // Construct using org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.newBuilder()
                private Builder() {

                }

                private Builder(
                        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                    super(parent);

                }

                @java.lang.Override
                public Builder clear() {
                    super.clear();
                    bitField0_ = 0;
                    nodeId_ = "";
                    counter_ = 0;
                    return this;
                }

                @java.lang.Override
                public com.google.protobuf.Descriptors.Descriptor
                        getDescriptorForType() {
                    return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_JoinTrigger_descriptor;
                }

                @java.lang.Override
                public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger getDefaultInstanceForType() {
                    return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.getDefaultInstance();
                }

                @java.lang.Override
                public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger build() {
                    org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger result = buildPartial();
                    if (!result.isInitialized()) {
                        throw newUninitializedMessageException(result);
                    }
                    return result;
                }

                @java.lang.Override
                public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger buildPartial() {
                    org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger result =
                            new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger(this);
                    if (bitField0_ != 0) {
                        buildPartial0(result);
                    }
                    onBuilt();
                    return result;
                }

                private void buildPartial0(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger result) {
                    int from_bitField0_ = bitField0_;
                    int to_bitField0_ = 0;
                    if (((from_bitField0_ & 0x00000001) != 0)) {
                        result.nodeId_ = nodeId_;
                        to_bitField0_ |= 0x00000001;
                    }
                    if (((from_bitField0_ & 0x00000002) != 0)) {
                        result.counter_ = counter_;
                        to_bitField0_ |= 0x00000002;
                    }
                    result.bitField0_ |= to_bitField0_;
                }

                @java.lang.Override
                public Builder clone() {
                    return super.clone();
                }

                @java.lang.Override
                public Builder setField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.setField(field, value);
                }

                @java.lang.Override
                public Builder clearField(
                        com.google.protobuf.Descriptors.FieldDescriptor field) {
                    return super.clearField(field);
                }

                @java.lang.Override
                public Builder clearOneof(
                        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                    return super.clearOneof(oneof);
                }

                @java.lang.Override
                public Builder setRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        int index, java.lang.Object value) {
                    return super.setRepeatedField(field, index, value);
                }

                @java.lang.Override
                public Builder addRepeatedField(
                        com.google.protobuf.Descriptors.FieldDescriptor field,
                        java.lang.Object value) {
                    return super.addRepeatedField(field, value);
                }

                @java.lang.Override
                public Builder mergeFrom(com.google.protobuf.Message other) {
                    if (other instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger) {
                        return mergeFrom((org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger) other);
                    } else {
                        super.mergeFrom(other);
                        return this;
                    }
                }

                public Builder mergeFrom(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger other) {
                    if (other == org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.getDefaultInstance())
                        return this;
                    if (other.hasNodeId()) {
                        nodeId_ = other.nodeId_;
                        bitField0_ |= 0x00000001;
                        onChanged();
                    }
                    if (other.hasCounter()) {
                        setCounter(other.getCounter());
                    }
                    this.mergeUnknownFields(other.getUnknownFields());
                    onChanged();
                    return this;
                }

                @java.lang.Override
                public final boolean isInitialized() {
                    return true;
                }

                @java.lang.Override
                public Builder mergeFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws java.io.IOException {
                    if (extensionRegistry == null) {
                        throw new java.lang.NullPointerException();
                    }
                    try {
                        boolean done = false;
                        while (!done) {
                            int tag = input.readTag();
                            switch (tag) {
                                case 0:
                                    done = true;
                                    break;
                                case 10: {
                                    nodeId_ = input.readStringRequireUtf8();
                                    bitField0_ |= 0x00000001;
                                    break;
                                } // case 10
                                case 16: {
                                    counter_ = input.readInt32();
                                    bitField0_ |= 0x00000002;
                                    break;
                                } // case 16
                                default: {
                                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                        done = true; // was an endgroup tag
                                    }
                                    break;
                                } // default:
                            } // switch (tag)
                        } // while (!done)
                    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                        throw e.unwrapIOException();
                    } finally {
                        onChanged();
                    } // finally
                    return this;
                }

                private int bitField0_;

                private java.lang.Object nodeId_ = "";

                /**
                 * <code>optional string node_id = 1;</code>
                 * 
                 * @return Whether the nodeId field is set.
                 */
                public boolean hasNodeId() {
                    return ((bitField0_ & 0x00000001) != 0);
                }

                /**
                 * <code>optional string node_id = 1;</code>
                 * 
                 * @return The nodeId.
                 */
                public java.lang.String getNodeId() {
                    java.lang.Object ref = nodeId_;
                    if (!(ref instanceof java.lang.String)) {
                        com.google.protobuf.ByteString bs =
                                (com.google.protobuf.ByteString) ref;
                        java.lang.String s = bs.toStringUtf8();
                        nodeId_ = s;
                        return s;
                    } else {
                        return (java.lang.String) ref;
                    }
                }

                /**
                 * <code>optional string node_id = 1;</code>
                 * 
                 * @return The bytes for nodeId.
                 */
                public com.google.protobuf.ByteString
                        getNodeIdBytes() {
                    java.lang.Object ref = nodeId_;
                    if (ref instanceof String) {
                        com.google.protobuf.ByteString b =
                                com.google.protobuf.ByteString.copyFromUtf8(
                                        (java.lang.String) ref);
                        nodeId_ = b;
                        return b;
                    } else {
                        return (com.google.protobuf.ByteString) ref;
                    }
                }

                /**
                 * <code>optional string node_id = 1;</code>
                 * 
                 * @param value The nodeId to set.
                 * @return This builder for chaining.
                 */
                public Builder setNodeId(
                        java.lang.String value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    nodeId_ = value;
                    bitField0_ |= 0x00000001;
                    onChanged();
                    return this;
                }

                /**
                 * <code>optional string node_id = 1;</code>
                 * 
                 * @return This builder for chaining.
                 */
                public Builder clearNodeId() {
                    nodeId_ = getDefaultInstance().getNodeId();
                    bitField0_ = (bitField0_ & ~0x00000001);
                    onChanged();
                    return this;
                }

                /**
                 * <code>optional string node_id = 1;</code>
                 * 
                 * @param value The bytes for nodeId to set.
                 * @return This builder for chaining.
                 */
                public Builder setNodeIdBytes(
                        com.google.protobuf.ByteString value) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    checkByteStringIsUtf8(value);
                    nodeId_ = value;
                    bitField0_ |= 0x00000001;
                    onChanged();
                    return this;
                }

                private int counter_;

                /**
                 * <code>optional int32 counter = 2;</code>
                 * 
                 * @return Whether the counter field is set.
                 */
                @java.lang.Override
                public boolean hasCounter() {
                    return ((bitField0_ & 0x00000002) != 0);
                }

                /**
                 * <code>optional int32 counter = 2;</code>
                 * 
                 * @return The counter.
                 */
                @java.lang.Override
                public int getCounter() {
                    return counter_;
                }

                /**
                 * <code>optional int32 counter = 2;</code>
                 * 
                 * @param value The counter to set.
                 * @return This builder for chaining.
                 */
                public Builder setCounter(int value) {

                    counter_ = value;
                    bitField0_ |= 0x00000002;
                    onChanged();
                    return this;
                }

                /**
                 * <code>optional int32 counter = 2;</code>
                 * 
                 * @return This builder for chaining.
                 */
                public Builder clearCounter() {
                    bitField0_ = (bitField0_ & ~0x00000002);
                    counter_ = 0;
                    onChanged();
                    return this;
                }

                @java.lang.Override
                public final Builder setUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.setUnknownFields(unknownFields);
                }

                @java.lang.Override
                public final Builder mergeUnknownFields(
                        final com.google.protobuf.UnknownFieldSet unknownFields) {
                    return super.mergeUnknownFields(unknownFields);
                }

                // @@protoc_insertion_point(builder_scope:org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger)
            }

            // @@protoc_insertion_point(class_scope:org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger)
            private static final org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger DEFAULT_INSTANCE;
            static {
                DEFAULT_INSTANCE = new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger();
            }

            public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger getDefaultInstance() {
                return DEFAULT_INSTANCE;
            }

            private static final com.google.protobuf.Parser<JoinTrigger> PARSER = new com.google.protobuf.AbstractParser<JoinTrigger>() {
                @java.lang.Override
                public JoinTrigger parsePartialFrom(
                        com.google.protobuf.CodedInputStream input,
                        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                        throws com.google.protobuf.InvalidProtocolBufferException {
                    Builder builder = newBuilder();
                    try {
                        builder.mergeFrom(input, extensionRegistry);
                    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                        throw e.setUnfinishedMessage(builder.buildPartial());
                    } catch (com.google.protobuf.UninitializedMessageException e) {
                        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                    } catch (java.io.IOException e) {
                        throw new com.google.protobuf.InvalidProtocolBufferException(e)
                                .setUnfinishedMessage(builder.buildPartial());
                    }
                    return builder.buildPartial();
                }
            };

            public static com.google.protobuf.Parser<JoinTrigger> parser() {
                return PARSER;
            }

            @java.lang.Override
            public com.google.protobuf.Parser<JoinTrigger> getParserForType() {
                return PARSER;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger getDefaultInstanceForType() {
                return DEFAULT_INSTANCE;
            }

        }

        public static final int TRIGGER_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private java.util.List<org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger> trigger_;

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
         */
        @java.lang.Override
        public java.util.List<org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger> getTriggerList() {
            return trigger_;
        }

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
         */
        @java.lang.Override
        public java.util.List<? extends org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTriggerOrBuilder>
                getTriggerOrBuilderList() {
            return trigger_;
        }

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
         */
        @java.lang.Override
        public int getTriggerCount() {
            return trigger_.size();
        }

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
         */
        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger getTrigger(int index) {
            return trigger_.get(index);
        }

        /**
         * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
         */
        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTriggerOrBuilder getTriggerOrBuilder(
                int index) {
            return trigger_.get(index);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            for (int i = 0; i < trigger_.size(); i++) {
                output.writeMessage(1, trigger_.get(i));
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;

            size = 0;
            for (int i = 0; i < trigger_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(1, trigger_.get(i));
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent)) {
                return super.equals(obj);
            }
            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent other =
                    (org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent) obj;

            if (!getTriggerList()
                    .equals(other.getTriggerList()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (getTriggerCount() > 0) {
                hash = (37 * hash) + TRIGGER_FIELD_NUMBER;
                hash = (53 * hash) + getTriggerList().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder()
                    : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent)
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContentOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                    getDescriptor() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.class,
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.Builder.class);
            }

            // Construct using org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.newBuilder()
            private Builder() {

            }

            private Builder(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);

            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                if (triggerBuilder_ == null) {
                    trigger_ = java.util.Collections.emptyList();
                } else {
                    trigger_ = null;
                    triggerBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000001);
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
                    getDescriptorForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent getDefaultInstanceForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.getDefaultInstance();
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent build() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent buildPartial() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent result =
                        new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent(this);
                buildPartialRepeatedFields(result);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartialRepeatedFields(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent result) {
                if (triggerBuilder_ == null) {
                    if (((bitField0_ & 0x00000001) != 0)) {
                        trigger_ = java.util.Collections.unmodifiableList(trigger_);
                        bitField0_ = (bitField0_ & ~0x00000001);
                    }
                    result.trigger_ = trigger_;
                } else {
                    result.trigger_ = triggerBuilder_.build();
                }
            }

            private void buildPartial0(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent result) {
                int from_bitField0_ = bitField0_;
            }

            @java.lang.Override
            public Builder clone() {
                return super.clone();
            }

            @java.lang.Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.setField(field, value);
            }

            @java.lang.Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @java.lang.Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @java.lang.Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, java.lang.Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @java.lang.Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.addRepeatedField(field, value);
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent) {
                    return mergeFrom((org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent other) {
                if (other == org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.getDefaultInstance())
                    return this;
                if (triggerBuilder_ == null) {
                    if (!other.trigger_.isEmpty()) {
                        if (trigger_.isEmpty()) {
                            trigger_ = other.trigger_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                        } else {
                            ensureTriggerIsMutable();
                            trigger_.addAll(other.trigger_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.trigger_.isEmpty()) {
                        if (triggerBuilder_.isEmpty()) {
                            triggerBuilder_.dispose();
                            triggerBuilder_ = null;
                            trigger_ = other.trigger_;
                            bitField0_ = (bitField0_ & ~0x00000001);
                            triggerBuilder_ =
                                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getTriggerFieldBuilder() : null;
                        } else {
                            triggerBuilder_.addAllMessages(other.trigger_);
                        }
                    }
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger m =
                                        input.readMessage(
                                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.parser(),
                                                extensionRegistry);
                                if (triggerBuilder_ == null) {
                                    ensureTriggerIsMutable();
                                    trigger_.add(m);
                                } else {
                                    triggerBuilder_.addMessage(m);
                                }
                                break;
                            } // case 10
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }

            private int bitField0_;

            private java.util.List<org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger> trigger_ =
                    java.util.Collections.emptyList();

            private void ensureTriggerIsMutable() {
                if (!((bitField0_ & 0x00000001) != 0)) {
                    trigger_ = new java.util.ArrayList<org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger>(trigger_);
                    bitField0_ |= 0x00000001;
                }
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger, org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.Builder, org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTriggerOrBuilder> triggerBuilder_;

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public java.util.List<org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger> getTriggerList() {
                if (triggerBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(trigger_);
                } else {
                    return triggerBuilder_.getMessageList();
                }
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public int getTriggerCount() {
                if (triggerBuilder_ == null) {
                    return trigger_.size();
                } else {
                    return triggerBuilder_.getCount();
                }
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger getTrigger(int index) {
                if (triggerBuilder_ == null) {
                    return trigger_.get(index);
                } else {
                    return triggerBuilder_.getMessage(index);
                }
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public Builder setTrigger(
                    int index, org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger value) {
                if (triggerBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureTriggerIsMutable();
                    trigger_.set(index, value);
                    onChanged();
                } else {
                    triggerBuilder_.setMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public Builder setTrigger(
                    int index, org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.Builder builderForValue) {
                if (triggerBuilder_ == null) {
                    ensureTriggerIsMutable();
                    trigger_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    triggerBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public Builder addTrigger(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger value) {
                if (triggerBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureTriggerIsMutable();
                    trigger_.add(value);
                    onChanged();
                } else {
                    triggerBuilder_.addMessage(value);
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public Builder addTrigger(
                    int index, org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger value) {
                if (triggerBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureTriggerIsMutable();
                    trigger_.add(index, value);
                    onChanged();
                } else {
                    triggerBuilder_.addMessage(index, value);
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public Builder addTrigger(
                    org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.Builder builderForValue) {
                if (triggerBuilder_ == null) {
                    ensureTriggerIsMutable();
                    trigger_.add(builderForValue.build());
                    onChanged();
                } else {
                    triggerBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public Builder addTrigger(
                    int index, org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.Builder builderForValue) {
                if (triggerBuilder_ == null) {
                    ensureTriggerIsMutable();
                    trigger_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    triggerBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public Builder addAllTrigger(
                    java.lang.Iterable<? extends org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger> values) {
                if (triggerBuilder_ == null) {
                    ensureTriggerIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(
                            values, trigger_);
                    onChanged();
                } else {
                    triggerBuilder_.addAllMessages(values);
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public Builder clearTrigger() {
                if (triggerBuilder_ == null) {
                    trigger_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000001);
                    onChanged();
                } else {
                    triggerBuilder_.clear();
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public Builder removeTrigger(int index) {
                if (triggerBuilder_ == null) {
                    ensureTriggerIsMutable();
                    trigger_.remove(index);
                    onChanged();
                } else {
                    triggerBuilder_.remove(index);
                }
                return this;
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.Builder getTriggerBuilder(
                    int index) {
                return getTriggerFieldBuilder().getBuilder(index);
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTriggerOrBuilder getTriggerOrBuilder(
                    int index) {
                if (triggerBuilder_ == null) {
                    return trigger_.get(index);
                } else {
                    return triggerBuilder_.getMessageOrBuilder(index);
                }
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public java.util.List<? extends org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTriggerOrBuilder>
                    getTriggerOrBuilderList() {
                if (triggerBuilder_ != null) {
                    return triggerBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(trigger_);
                }
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.Builder addTriggerBuilder() {
                return getTriggerFieldBuilder().addBuilder(
                        org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.getDefaultInstance());
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.Builder addTriggerBuilder(
                    int index) {
                return getTriggerFieldBuilder().addBuilder(
                        index, org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.getDefaultInstance());
            }

            /**
             * <code>repeated .org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent.JoinTrigger trigger = 1;</code>
             */
            public java.util.List<org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.Builder>
                    getTriggerBuilderList() {
                return getTriggerFieldBuilder().getBuilderList();
            }

            private com.google.protobuf.RepeatedFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger, org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.Builder, org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTriggerOrBuilder>
                    getTriggerFieldBuilder() {
                if (triggerBuilder_ == null) {
                    triggerBuilder_ =
                            new com.google.protobuf.RepeatedFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger, org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTrigger.Builder, org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent.JoinTriggerOrBuilder>(
                                    trigger_,
                                    ((bitField0_ & 0x00000001) != 0),
                                    getParentForChildren(),
                                    isClean());
                    trigger_ = null;
                }
                return triggerBuilder_;
            }

            @java.lang.Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }

            // @@protoc_insertion_point(builder_scope:org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.flow.serialization.protobuf.JoinNodeInstanceContent)
        private static final org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent();
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<JoinNodeInstanceContent> PARSER = new com.google.protobuf.AbstractParser<JoinNodeInstanceContent>() {
            @java.lang.Override
            public JoinNodeInstanceContent parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e)
                            .setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<JoinNodeInstanceContent> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<JoinNodeInstanceContent> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.JoinNodeInstanceContent getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface StateNodeInstanceContentOrBuilder extends
            // @@protoc_insertion_point(interface_extends:org.jbpm.flow.serialization.protobuf.StateNodeInstanceContent)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.String>
                getTimerInstanceIdList();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        java.lang.String getTimerInstanceId(int index);

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index);

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        int getTimerInstanceReferenceCount();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        boolean containsTimerInstanceReference(
                java.lang.String key);

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Deprecated
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReference();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReferenceMap();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue);

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key);
    }

    /**
     * Protobuf type {@code org.jbpm.flow.serialization.protobuf.StateNodeInstanceContent}
     */
    public static final class StateNodeInstanceContent extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:org.jbpm.flow.serialization.protobuf.StateNodeInstanceContent)
            StateNodeInstanceContentOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use StateNodeInstanceContent.newBuilder() to construct.
        private StateNodeInstanceContent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private StateNodeInstanceContent() {
            timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(
                UnusedPrivateParameter unused) {
            return new StateNodeInstanceContent();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_StateNodeInstanceContent_descriptor;
        }

        @SuppressWarnings({ "rawtypes" })
        @java.lang.Override
        protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                int number) {
            switch (number) {
                case 2:
                    return internalGetTimerInstanceReference();
                default:
                    throw new RuntimeException(
                            "Invalid map field number: " + number);
            }
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_StateNodeInstanceContent_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent.class,
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent.Builder.class);
        }

        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                com.google.protobuf.LazyStringArrayList.emptyList();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        public com.google.protobuf.ProtocolStringList
                getTimerInstanceIdList() {
            return timerInstanceId_;
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public java.lang.String getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        public com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index) {
            return timerInstanceId_.getByteString(index);
        }

        public static final int TIMER_INSTANCE_REFERENCE_FIELD_NUMBER = 2;

        private static final class TimerInstanceReferenceDefaultEntryHolder {
            static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
                    com.google.protobuf.MapEntry.<java.lang.String, java.lang.String> newDefaultInstance(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_StateNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "",
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "");
        }

        @SuppressWarnings("serial")
        private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

        private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                internalGetTimerInstanceReference() {
            if (timerInstanceReference_ == null) {
                return com.google.protobuf.MapField.emptyMapField(
                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
            }
            return timerInstanceReference_;
        }

        public int getTimerInstanceReferenceCount() {
            return internalGetTimerInstanceReference().getMap().size();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        @java.lang.Override
        public boolean containsTimerInstanceReference(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            return internalGetTimerInstanceReference().getMap().containsKey(key);
        }

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Override
        @java.lang.Deprecated
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
            return getTimerInstanceReferenceMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        @java.lang.Override
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
            return internalGetTimerInstanceReference().getMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        @java.lang.Override
        public /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            return map.containsKey(key) ? map.get(key) : defaultValue;
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
         */
        @java.lang.Override
        public java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            if (!map.containsKey(key)) {
                throw new java.lang.IllegalArgumentException();
            }
            return map.get(key);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            for (int i = 0; i < timerInstanceId_.size(); i++) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, timerInstanceId_.getRaw(i));
            }
            com.google.protobuf.GeneratedMessageV3
                    .serializeStringMapTo(
                            output,
                            internalGetTimerInstanceReference(),
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry,
                            2);
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;

            size = 0;
            {
                int dataSize = 0;
                for (int i = 0; i < timerInstanceId_.size(); i++) {
                    dataSize += computeStringSizeNoTag(timerInstanceId_.getRaw(i));
                }
                size += dataSize;
                size += 1 * getTimerInstanceIdList().size();
            }
            for (java.util.Map.Entry<java.lang.String, java.lang.String> entry : internalGetTimerInstanceReference().getMap().entrySet()) {
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = TimerInstanceReferenceDefaultEntryHolder.defaultEntry.newBuilderForType()
                        .setKey(entry.getKey())
                        .setValue(entry.getValue())
                        .build();
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(2, timerInstanceReference__);
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent)) {
                return super.equals(obj);
            }
            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent other =
                    (org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent) obj;

            if (!getTimerInstanceIdList()
                    .equals(other.getTimerInstanceIdList()))
                return false;
            if (!internalGetTimerInstanceReference().equals(
                    other.internalGetTimerInstanceReference()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (getTimerInstanceIdCount() > 0) {
                hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getTimerInstanceIdList().hashCode();
            }
            if (!internalGetTimerInstanceReference().getMap().isEmpty()) {
                hash = (37 * hash) + TIMER_INSTANCE_REFERENCE_FIELD_NUMBER;
                hash = (53 * hash) + internalGetTimerInstanceReference().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder()
                    : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.jbpm.flow.serialization.protobuf.StateNodeInstanceContent}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:org.jbpm.flow.serialization.protobuf.StateNodeInstanceContent)
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContentOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                    getDescriptor() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_StateNodeInstanceContent_descriptor;
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                    int number) {
                switch (number) {
                    case 2:
                        return internalGetTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
                    int number) {
                switch (number) {
                    case 2:
                        return internalGetMutableTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_StateNodeInstanceContent_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent.class,
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent.Builder.class);
            }

            // Construct using org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent.newBuilder()
            private Builder() {

            }

            private Builder(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);

            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                internalGetMutableTimerInstanceReference().clear();
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
                    getDescriptorForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_StateNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent getDefaultInstanceForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent.getDefaultInstance();
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent build() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent buildPartial() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent result =
                        new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    timerInstanceId_.makeImmutable();
                    result.timerInstanceId_ = timerInstanceId_;
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.timerInstanceReference_ = internalGetTimerInstanceReference();
                    result.timerInstanceReference_.makeImmutable();
                }
            }

            @java.lang.Override
            public Builder clone() {
                return super.clone();
            }

            @java.lang.Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.setField(field, value);
            }

            @java.lang.Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @java.lang.Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @java.lang.Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, java.lang.Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @java.lang.Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.addRepeatedField(field, value);
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent) {
                    return mergeFrom((org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent other) {
                if (other == org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent.getDefaultInstance())
                    return this;
                if (!other.timerInstanceId_.isEmpty()) {
                    if (timerInstanceId_.isEmpty()) {
                        timerInstanceId_ = other.timerInstanceId_;
                        bitField0_ |= 0x00000001;
                    } else {
                        ensureTimerInstanceIdIsMutable();
                        timerInstanceId_.addAll(other.timerInstanceId_);
                    }
                    onChanged();
                }
                internalGetMutableTimerInstanceReference().mergeFrom(
                        other.internalGetTimerInstanceReference());
                bitField0_ |= 0x00000002;
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                java.lang.String s = input.readStringRequireUtf8();
                                ensureTimerInstanceIdIsMutable();
                                timerInstanceId_.add(s);
                                break;
                            } // case 10
                            case 18: {
                                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = input.readMessage(
                                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                                internalGetMutableTimerInstanceReference().getMutableMap().put(
                                        timerInstanceReference__.getKey(), timerInstanceReference__.getValue());
                                bitField0_ |= 0x00000002;
                                break;
                            } // case 18
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }

            private int bitField0_;

            private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();

            private void ensureTimerInstanceIdIsMutable() {
                if (!timerInstanceId_.isModifiable()) {
                    timerInstanceId_ = new com.google.protobuf.LazyStringArrayList(timerInstanceId_);
                }
                bitField0_ |= 0x00000001;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return A list containing the timerInstanceId.
             */
            public com.google.protobuf.ProtocolStringList
                    getTimerInstanceIdList() {
                timerInstanceId_.makeImmutable();
                return timerInstanceId_;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return The count of timerInstanceId.
             */
            public int getTimerInstanceIdCount() {
                return timerInstanceId_.size();
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index of the element to return.
             * @return The timerInstanceId at the given index.
             */
            public java.lang.String getTimerInstanceId(int index) {
                return timerInstanceId_.get(index);
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index of the value to return.
             * @return The bytes of the timerInstanceId at the given index.
             */
            public com.google.protobuf.ByteString
                    getTimerInstanceIdBytes(int index) {
                return timerInstanceId_.getByteString(index);
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index to set the value at.
             * @param value The timerInstanceId to set.
             * @return This builder for chaining.
             */
            public Builder setTimerInstanceId(
                    int index, java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.set(index, value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param value The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param values The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addAllTimerInstanceId(
                    java.lang.Iterable<java.lang.String> values) {
                ensureTimerInstanceIdIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(
                        values, timerInstanceId_);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearTimerInstanceId() {
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                bitField0_ = (bitField0_ & ~0x00000001);
                ;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param value The bytes of the timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    return com.google.protobuf.MapField.emptyMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                return timerInstanceReference_;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetMutableTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    timerInstanceReference_ = com.google.protobuf.MapField.newMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                if (!timerInstanceReference_.isMutable()) {
                    timerInstanceReference_ = timerInstanceReference_.copy();
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return timerInstanceReference_;
            }

            public int getTimerInstanceReferenceCount() {
                return internalGetTimerInstanceReference().getMap().size();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
             */
            @java.lang.Override
            public boolean containsTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                return internalGetTimerInstanceReference().getMap().containsKey(key);
            }

            /**
             * Use {@link #getTimerInstanceReferenceMap()} instead.
             */
            @java.lang.Override
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
                return getTimerInstanceReferenceMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
             */
            @java.lang.Override
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
                return internalGetTimerInstanceReference().getMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
             */
            @java.lang.Override
            public /* nullable */
            java.lang.String getTimerInstanceReferenceOrDefault(
                    java.lang.String key,
                    /* nullable */
                    java.lang.String defaultValue) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                return map.containsKey(key) ? map.get(key) : defaultValue;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
             */
            @java.lang.Override
            public java.lang.String getTimerInstanceReferenceOrThrow(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                if (!map.containsKey(key)) {
                    throw new java.lang.IllegalArgumentException();
                }
                return map.get(key);
            }

            public Builder clearTimerInstanceReference() {
                bitField0_ = (bitField0_ & ~0x00000002);
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .clear();
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
             */
            public Builder removeTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .remove(key);
                return this;
            }

            /**
             * Use alternate mutation accessors instead.
             */
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String>
                    getMutableTimerInstanceReference() {
                bitField0_ |= 0x00000002;
                return internalGetMutableTimerInstanceReference().getMutableMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
             */
            public Builder putTimerInstanceReference(
                    java.lang.String key,
                    java.lang.String value) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                if (value == null) {
                    throw new NullPointerException("map value");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .put(key, value);
                bitField0_ |= 0x00000002;
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 2;</code>
             */
            public Builder putAllTimerInstanceReference(
                    java.util.Map<java.lang.String, java.lang.String> values) {
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .putAll(values);
                bitField0_ |= 0x00000002;
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }

            // @@protoc_insertion_point(builder_scope:org.jbpm.flow.serialization.protobuf.StateNodeInstanceContent)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.flow.serialization.protobuf.StateNodeInstanceContent)
        private static final org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent();
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<StateNodeInstanceContent> PARSER = new com.google.protobuf.AbstractParser<StateNodeInstanceContent>() {
            @java.lang.Override
            public StateNodeInstanceContent parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e)
                            .setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<StateNodeInstanceContent> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<StateNodeInstanceContent> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.StateNodeInstanceContent getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface CompositeContextNodeInstanceContentOrBuilder extends
            // @@protoc_insertion_point(interface_extends:org.jbpm.flow.serialization.protobuf.CompositeContextNodeInstanceContent)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.String>
                getTimerInstanceIdList();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        java.lang.String getTimerInstanceId(int index);

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index);

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         * 
         * @return Whether the context field is set.
         */
        boolean hasContext();

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         * 
         * @return The context.
         */
        org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext getContext();

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         */
        org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder getContextOrBuilder();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        int getTimerInstanceReferenceCount();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        boolean containsTimerInstanceReference(
                java.lang.String key);

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Deprecated
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReference();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReferenceMap();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue);

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key);
    }

    /**
     * Protobuf type {@code org.jbpm.flow.serialization.protobuf.CompositeContextNodeInstanceContent}
     */
    public static final class CompositeContextNodeInstanceContent extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:org.jbpm.flow.serialization.protobuf.CompositeContextNodeInstanceContent)
            CompositeContextNodeInstanceContentOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use CompositeContextNodeInstanceContent.newBuilder() to construct.
        private CompositeContextNodeInstanceContent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private CompositeContextNodeInstanceContent() {
            timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(
                UnusedPrivateParameter unused) {
            return new CompositeContextNodeInstanceContent();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_CompositeContextNodeInstanceContent_descriptor;
        }

        @SuppressWarnings({ "rawtypes" })
        @java.lang.Override
        protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                int number) {
            switch (number) {
                case 3:
                    return internalGetTimerInstanceReference();
                default:
                    throw new RuntimeException(
                            "Invalid map field number: " + number);
            }
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_CompositeContextNodeInstanceContent_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent.class,
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent.Builder.class);
        }

        private int bitField0_;
        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                com.google.protobuf.LazyStringArrayList.emptyList();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        public com.google.protobuf.ProtocolStringList
                getTimerInstanceIdList() {
            return timerInstanceId_;
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public java.lang.String getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        public com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index) {
            return timerInstanceId_.getByteString(index);
        }

        public static final int CONTEXT_FIELD_NUMBER = 2;
        private org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext context_;

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         * 
         * @return Whether the context field is set.
         */
        @java.lang.Override
        public boolean hasContext() {
            return ((bitField0_ & 0x00000001) != 0);
        }

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         * 
         * @return The context.
         */
        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext getContext() {
            return context_ == null ? org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance() : context_;
        }

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         */
        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder getContextOrBuilder() {
            return context_ == null ? org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance() : context_;
        }

        public static final int TIMER_INSTANCE_REFERENCE_FIELD_NUMBER = 3;

        private static final class TimerInstanceReferenceDefaultEntryHolder {
            static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
                    com.google.protobuf.MapEntry.<java.lang.String, java.lang.String> newDefaultInstance(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_CompositeContextNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "",
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "");
        }

        @SuppressWarnings("serial")
        private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

        private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                internalGetTimerInstanceReference() {
            if (timerInstanceReference_ == null) {
                return com.google.protobuf.MapField.emptyMapField(
                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
            }
            return timerInstanceReference_;
        }

        public int getTimerInstanceReferenceCount() {
            return internalGetTimerInstanceReference().getMap().size();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public boolean containsTimerInstanceReference(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            return internalGetTimerInstanceReference().getMap().containsKey(key);
        }

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Override
        @java.lang.Deprecated
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
            return getTimerInstanceReferenceMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
            return internalGetTimerInstanceReference().getMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            return map.containsKey(key) ? map.get(key) : defaultValue;
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            if (!map.containsKey(key)) {
                throw new java.lang.IllegalArgumentException();
            }
            return map.get(key);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            for (int i = 0; i < timerInstanceId_.size(); i++) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, timerInstanceId_.getRaw(i));
            }
            if (((bitField0_ & 0x00000001) != 0)) {
                output.writeMessage(2, getContext());
            }
            com.google.protobuf.GeneratedMessageV3
                    .serializeStringMapTo(
                            output,
                            internalGetTimerInstanceReference(),
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry,
                            3);
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;

            size = 0;
            {
                int dataSize = 0;
                for (int i = 0; i < timerInstanceId_.size(); i++) {
                    dataSize += computeStringSizeNoTag(timerInstanceId_.getRaw(i));
                }
                size += dataSize;
                size += 1 * getTimerInstanceIdList().size();
            }
            if (((bitField0_ & 0x00000001) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(2, getContext());
            }
            for (java.util.Map.Entry<java.lang.String, java.lang.String> entry : internalGetTimerInstanceReference().getMap().entrySet()) {
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = TimerInstanceReferenceDefaultEntryHolder.defaultEntry.newBuilderForType()
                        .setKey(entry.getKey())
                        .setValue(entry.getValue())
                        .build();
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(3, timerInstanceReference__);
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent)) {
                return super.equals(obj);
            }
            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent other =
                    (org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent) obj;

            if (!getTimerInstanceIdList()
                    .equals(other.getTimerInstanceIdList()))
                return false;
            if (hasContext() != other.hasContext())
                return false;
            if (hasContext()) {
                if (!getContext()
                        .equals(other.getContext()))
                    return false;
            }
            if (!internalGetTimerInstanceReference().equals(
                    other.internalGetTimerInstanceReference()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (getTimerInstanceIdCount() > 0) {
                hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getTimerInstanceIdList().hashCode();
            }
            if (hasContext()) {
                hash = (37 * hash) + CONTEXT_FIELD_NUMBER;
                hash = (53 * hash) + getContext().hashCode();
            }
            if (!internalGetTimerInstanceReference().getMap().isEmpty()) {
                hash = (37 * hash) + TIMER_INSTANCE_REFERENCE_FIELD_NUMBER;
                hash = (53 * hash) + internalGetTimerInstanceReference().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder()
                    : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.jbpm.flow.serialization.protobuf.CompositeContextNodeInstanceContent}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:org.jbpm.flow.serialization.protobuf.CompositeContextNodeInstanceContent)
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContentOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                    getDescriptor() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_CompositeContextNodeInstanceContent_descriptor;
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                    int number) {
                switch (number) {
                    case 3:
                        return internalGetTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
                    int number) {
                switch (number) {
                    case 3:
                        return internalGetMutableTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_CompositeContextNodeInstanceContent_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent.class,
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent.Builder.class);
            }

            // Construct using org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent.newBuilder()
            private Builder() {
                maybeForceBuilderInitialization();
            }

            private Builder(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
                    getContextFieldBuilder();
                }
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                context_ = null;
                if (contextBuilder_ != null) {
                    contextBuilder_.dispose();
                    contextBuilder_ = null;
                }
                internalGetMutableTimerInstanceReference().clear();
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
                    getDescriptorForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_CompositeContextNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent getDefaultInstanceForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent.getDefaultInstance();
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent build() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent buildPartial() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent result =
                        new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    timerInstanceId_.makeImmutable();
                    result.timerInstanceId_ = timerInstanceId_;
                }
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.context_ = contextBuilder_ == null
                            ? context_
                            : contextBuilder_.build();
                    to_bitField0_ |= 0x00000001;
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.timerInstanceReference_ = internalGetTimerInstanceReference();
                    result.timerInstanceReference_.makeImmutable();
                }
                result.bitField0_ |= to_bitField0_;
            }

            @java.lang.Override
            public Builder clone() {
                return super.clone();
            }

            @java.lang.Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.setField(field, value);
            }

            @java.lang.Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @java.lang.Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @java.lang.Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, java.lang.Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @java.lang.Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.addRepeatedField(field, value);
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent) {
                    return mergeFrom((org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent other) {
                if (other == org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent.getDefaultInstance())
                    return this;
                if (!other.timerInstanceId_.isEmpty()) {
                    if (timerInstanceId_.isEmpty()) {
                        timerInstanceId_ = other.timerInstanceId_;
                        bitField0_ |= 0x00000001;
                    } else {
                        ensureTimerInstanceIdIsMutable();
                        timerInstanceId_.addAll(other.timerInstanceId_);
                    }
                    onChanged();
                }
                if (other.hasContext()) {
                    mergeContext(other.getContext());
                }
                internalGetMutableTimerInstanceReference().mergeFrom(
                        other.internalGetTimerInstanceReference());
                bitField0_ |= 0x00000004;
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                java.lang.String s = input.readStringRequireUtf8();
                                ensureTimerInstanceIdIsMutable();
                                timerInstanceId_.add(s);
                                break;
                            } // case 10
                            case 18: {
                                input.readMessage(
                                        getContextFieldBuilder().getBuilder(),
                                        extensionRegistry);
                                bitField0_ |= 0x00000002;
                                break;
                            } // case 18
                            case 26: {
                                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = input.readMessage(
                                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                                internalGetMutableTimerInstanceReference().getMutableMap().put(
                                        timerInstanceReference__.getKey(), timerInstanceReference__.getValue());
                                bitField0_ |= 0x00000004;
                                break;
                            } // case 26
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }

            private int bitField0_;

            private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();

            private void ensureTimerInstanceIdIsMutable() {
                if (!timerInstanceId_.isModifiable()) {
                    timerInstanceId_ = new com.google.protobuf.LazyStringArrayList(timerInstanceId_);
                }
                bitField0_ |= 0x00000001;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return A list containing the timerInstanceId.
             */
            public com.google.protobuf.ProtocolStringList
                    getTimerInstanceIdList() {
                timerInstanceId_.makeImmutable();
                return timerInstanceId_;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return The count of timerInstanceId.
             */
            public int getTimerInstanceIdCount() {
                return timerInstanceId_.size();
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index of the element to return.
             * @return The timerInstanceId at the given index.
             */
            public java.lang.String getTimerInstanceId(int index) {
                return timerInstanceId_.get(index);
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index of the value to return.
             * @return The bytes of the timerInstanceId at the given index.
             */
            public com.google.protobuf.ByteString
                    getTimerInstanceIdBytes(int index) {
                return timerInstanceId_.getByteString(index);
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index to set the value at.
             * @param value The timerInstanceId to set.
             * @return This builder for chaining.
             */
            public Builder setTimerInstanceId(
                    int index, java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.set(index, value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param value The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param values The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addAllTimerInstanceId(
                    java.lang.Iterable<java.lang.String> values) {
                ensureTimerInstanceIdIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(
                        values, timerInstanceId_);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearTimerInstanceId() {
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                bitField0_ = (bitField0_ & ~0x00000001);
                ;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param value The bytes of the timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            private org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext context_;
            private com.google.protobuf.SingleFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder> contextBuilder_;

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             * 
             * @return Whether the context field is set.
             */
            public boolean hasContext() {
                return ((bitField0_ & 0x00000002) != 0);
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             * 
             * @return The context.
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext getContext() {
                if (contextBuilder_ == null) {
                    return context_ == null ? org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance() : context_;
                } else {
                    return contextBuilder_.getMessage();
                }
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public Builder setContext(org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext value) {
                if (contextBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    context_ = value;
                } else {
                    contextBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public Builder setContext(
                    org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder builderForValue) {
                if (contextBuilder_ == null) {
                    context_ = builderForValue.build();
                } else {
                    contextBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public Builder mergeContext(org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext value) {
                if (contextBuilder_ == null) {
                    if (((bitField0_ & 0x00000002) != 0) &&
                            context_ != null &&
                            context_ != org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance()) {
                        getContextBuilder().mergeFrom(value);
                    } else {
                        context_ = value;
                    }
                } else {
                    contextBuilder_.mergeFrom(value);
                }
                if (context_ != null) {
                    bitField0_ |= 0x00000002;
                    onChanged();
                }
                return this;
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public Builder clearContext() {
                bitField0_ = (bitField0_ & ~0x00000002);
                context_ = null;
                if (contextBuilder_ != null) {
                    contextBuilder_.dispose();
                    contextBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder getContextBuilder() {
                bitField0_ |= 0x00000002;
                onChanged();
                return getContextFieldBuilder().getBuilder();
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder getContextOrBuilder() {
                if (contextBuilder_ != null) {
                    return contextBuilder_.getMessageOrBuilder();
                } else {
                    return context_ == null ? org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance() : context_;
                }
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder>
                    getContextFieldBuilder() {
                if (contextBuilder_ == null) {
                    contextBuilder_ =
                            new com.google.protobuf.SingleFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder>(
                                    getContext(),
                                    getParentForChildren(),
                                    isClean());
                    context_ = null;
                }
                return contextBuilder_;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    return com.google.protobuf.MapField.emptyMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                return timerInstanceReference_;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetMutableTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    timerInstanceReference_ = com.google.protobuf.MapField.newMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                if (!timerInstanceReference_.isMutable()) {
                    timerInstanceReference_ = timerInstanceReference_.copy();
                }
                bitField0_ |= 0x00000004;
                onChanged();
                return timerInstanceReference_;
            }

            public int getTimerInstanceReferenceCount() {
                return internalGetTimerInstanceReference().getMap().size();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public boolean containsTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                return internalGetTimerInstanceReference().getMap().containsKey(key);
            }

            /**
             * Use {@link #getTimerInstanceReferenceMap()} instead.
             */
            @java.lang.Override
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
                return getTimerInstanceReferenceMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
                return internalGetTimerInstanceReference().getMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public /* nullable */
            java.lang.String getTimerInstanceReferenceOrDefault(
                    java.lang.String key,
                    /* nullable */
                    java.lang.String defaultValue) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                return map.containsKey(key) ? map.get(key) : defaultValue;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public java.lang.String getTimerInstanceReferenceOrThrow(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                if (!map.containsKey(key)) {
                    throw new java.lang.IllegalArgumentException();
                }
                return map.get(key);
            }

            public Builder clearTimerInstanceReference() {
                bitField0_ = (bitField0_ & ~0x00000004);
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .clear();
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder removeTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .remove(key);
                return this;
            }

            /**
             * Use alternate mutation accessors instead.
             */
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String>
                    getMutableTimerInstanceReference() {
                bitField0_ |= 0x00000004;
                return internalGetMutableTimerInstanceReference().getMutableMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder putTimerInstanceReference(
                    java.lang.String key,
                    java.lang.String value) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                if (value == null) {
                    throw new NullPointerException("map value");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .put(key, value);
                bitField0_ |= 0x00000004;
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder putAllTimerInstanceReference(
                    java.util.Map<java.lang.String, java.lang.String> values) {
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .putAll(values);
                bitField0_ |= 0x00000004;
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }

            // @@protoc_insertion_point(builder_scope:org.jbpm.flow.serialization.protobuf.CompositeContextNodeInstanceContent)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.flow.serialization.protobuf.CompositeContextNodeInstanceContent)
        private static final org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent();
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<CompositeContextNodeInstanceContent> PARSER = new com.google.protobuf.AbstractParser<CompositeContextNodeInstanceContent>() {
            @java.lang.Override
            public CompositeContextNodeInstanceContent parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e)
                            .setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<CompositeContextNodeInstanceContent> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<CompositeContextNodeInstanceContent> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.CompositeContextNodeInstanceContent getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface DynamicNodeInstanceContentOrBuilder extends
            // @@protoc_insertion_point(interface_extends:org.jbpm.flow.serialization.protobuf.DynamicNodeInstanceContent)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.String>
                getTimerInstanceIdList();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        java.lang.String getTimerInstanceId(int index);

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index);

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         * 
         * @return Whether the context field is set.
         */
        boolean hasContext();

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         * 
         * @return The context.
         */
        org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext getContext();

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         */
        org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder getContextOrBuilder();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        int getTimerInstanceReferenceCount();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        boolean containsTimerInstanceReference(
                java.lang.String key);

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Deprecated
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReference();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReferenceMap();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue);

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key);
    }

    /**
     * Protobuf type {@code org.jbpm.flow.serialization.protobuf.DynamicNodeInstanceContent}
     */
    public static final class DynamicNodeInstanceContent extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:org.jbpm.flow.serialization.protobuf.DynamicNodeInstanceContent)
            DynamicNodeInstanceContentOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use DynamicNodeInstanceContent.newBuilder() to construct.
        private DynamicNodeInstanceContent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private DynamicNodeInstanceContent() {
            timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(
                UnusedPrivateParameter unused) {
            return new DynamicNodeInstanceContent();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_DynamicNodeInstanceContent_descriptor;
        }

        @SuppressWarnings({ "rawtypes" })
        @java.lang.Override
        protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                int number) {
            switch (number) {
                case 3:
                    return internalGetTimerInstanceReference();
                default:
                    throw new RuntimeException(
                            "Invalid map field number: " + number);
            }
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_DynamicNodeInstanceContent_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent.class,
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent.Builder.class);
        }

        private int bitField0_;
        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                com.google.protobuf.LazyStringArrayList.emptyList();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        public com.google.protobuf.ProtocolStringList
                getTimerInstanceIdList() {
            return timerInstanceId_;
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public java.lang.String getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        public com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index) {
            return timerInstanceId_.getByteString(index);
        }

        public static final int CONTEXT_FIELD_NUMBER = 2;
        private org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext context_;

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         * 
         * @return Whether the context field is set.
         */
        @java.lang.Override
        public boolean hasContext() {
            return ((bitField0_ & 0x00000001) != 0);
        }

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         * 
         * @return The context.
         */
        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext getContext() {
            return context_ == null ? org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance() : context_;
        }

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         */
        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder getContextOrBuilder() {
            return context_ == null ? org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance() : context_;
        }

        public static final int TIMER_INSTANCE_REFERENCE_FIELD_NUMBER = 3;

        private static final class TimerInstanceReferenceDefaultEntryHolder {
            static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
                    com.google.protobuf.MapEntry.<java.lang.String, java.lang.String> newDefaultInstance(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_DynamicNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "",
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "");
        }

        @SuppressWarnings("serial")
        private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

        private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                internalGetTimerInstanceReference() {
            if (timerInstanceReference_ == null) {
                return com.google.protobuf.MapField.emptyMapField(
                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
            }
            return timerInstanceReference_;
        }

        public int getTimerInstanceReferenceCount() {
            return internalGetTimerInstanceReference().getMap().size();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public boolean containsTimerInstanceReference(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            return internalGetTimerInstanceReference().getMap().containsKey(key);
        }

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Override
        @java.lang.Deprecated
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
            return getTimerInstanceReferenceMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
            return internalGetTimerInstanceReference().getMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            return map.containsKey(key) ? map.get(key) : defaultValue;
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            if (!map.containsKey(key)) {
                throw new java.lang.IllegalArgumentException();
            }
            return map.get(key);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            for (int i = 0; i < timerInstanceId_.size(); i++) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, timerInstanceId_.getRaw(i));
            }
            if (((bitField0_ & 0x00000001) != 0)) {
                output.writeMessage(2, getContext());
            }
            com.google.protobuf.GeneratedMessageV3
                    .serializeStringMapTo(
                            output,
                            internalGetTimerInstanceReference(),
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry,
                            3);
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;

            size = 0;
            {
                int dataSize = 0;
                for (int i = 0; i < timerInstanceId_.size(); i++) {
                    dataSize += computeStringSizeNoTag(timerInstanceId_.getRaw(i));
                }
                size += dataSize;
                size += 1 * getTimerInstanceIdList().size();
            }
            if (((bitField0_ & 0x00000001) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(2, getContext());
            }
            for (java.util.Map.Entry<java.lang.String, java.lang.String> entry : internalGetTimerInstanceReference().getMap().entrySet()) {
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = TimerInstanceReferenceDefaultEntryHolder.defaultEntry.newBuilderForType()
                        .setKey(entry.getKey())
                        .setValue(entry.getValue())
                        .build();
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(3, timerInstanceReference__);
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent)) {
                return super.equals(obj);
            }
            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent other =
                    (org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent) obj;

            if (!getTimerInstanceIdList()
                    .equals(other.getTimerInstanceIdList()))
                return false;
            if (hasContext() != other.hasContext())
                return false;
            if (hasContext()) {
                if (!getContext()
                        .equals(other.getContext()))
                    return false;
            }
            if (!internalGetTimerInstanceReference().equals(
                    other.internalGetTimerInstanceReference()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (getTimerInstanceIdCount() > 0) {
                hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getTimerInstanceIdList().hashCode();
            }
            if (hasContext()) {
                hash = (37 * hash) + CONTEXT_FIELD_NUMBER;
                hash = (53 * hash) + getContext().hashCode();
            }
            if (!internalGetTimerInstanceReference().getMap().isEmpty()) {
                hash = (37 * hash) + TIMER_INSTANCE_REFERENCE_FIELD_NUMBER;
                hash = (53 * hash) + internalGetTimerInstanceReference().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder()
                    : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.jbpm.flow.serialization.protobuf.DynamicNodeInstanceContent}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:org.jbpm.flow.serialization.protobuf.DynamicNodeInstanceContent)
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContentOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                    getDescriptor() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_DynamicNodeInstanceContent_descriptor;
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                    int number) {
                switch (number) {
                    case 3:
                        return internalGetTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
                    int number) {
                switch (number) {
                    case 3:
                        return internalGetMutableTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_DynamicNodeInstanceContent_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent.class,
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent.Builder.class);
            }

            // Construct using org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent.newBuilder()
            private Builder() {
                maybeForceBuilderInitialization();
            }

            private Builder(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
                    getContextFieldBuilder();
                }
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                context_ = null;
                if (contextBuilder_ != null) {
                    contextBuilder_.dispose();
                    contextBuilder_ = null;
                }
                internalGetMutableTimerInstanceReference().clear();
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
                    getDescriptorForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_DynamicNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent getDefaultInstanceForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent.getDefaultInstance();
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent build() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent buildPartial() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent result =
                        new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    timerInstanceId_.makeImmutable();
                    result.timerInstanceId_ = timerInstanceId_;
                }
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.context_ = contextBuilder_ == null
                            ? context_
                            : contextBuilder_.build();
                    to_bitField0_ |= 0x00000001;
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.timerInstanceReference_ = internalGetTimerInstanceReference();
                    result.timerInstanceReference_.makeImmutable();
                }
                result.bitField0_ |= to_bitField0_;
            }

            @java.lang.Override
            public Builder clone() {
                return super.clone();
            }

            @java.lang.Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.setField(field, value);
            }

            @java.lang.Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @java.lang.Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @java.lang.Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, java.lang.Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @java.lang.Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.addRepeatedField(field, value);
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent) {
                    return mergeFrom((org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent other) {
                if (other == org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent.getDefaultInstance())
                    return this;
                if (!other.timerInstanceId_.isEmpty()) {
                    if (timerInstanceId_.isEmpty()) {
                        timerInstanceId_ = other.timerInstanceId_;
                        bitField0_ |= 0x00000001;
                    } else {
                        ensureTimerInstanceIdIsMutable();
                        timerInstanceId_.addAll(other.timerInstanceId_);
                    }
                    onChanged();
                }
                if (other.hasContext()) {
                    mergeContext(other.getContext());
                }
                internalGetMutableTimerInstanceReference().mergeFrom(
                        other.internalGetTimerInstanceReference());
                bitField0_ |= 0x00000004;
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                java.lang.String s = input.readStringRequireUtf8();
                                ensureTimerInstanceIdIsMutable();
                                timerInstanceId_.add(s);
                                break;
                            } // case 10
                            case 18: {
                                input.readMessage(
                                        getContextFieldBuilder().getBuilder(),
                                        extensionRegistry);
                                bitField0_ |= 0x00000002;
                                break;
                            } // case 18
                            case 26: {
                                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = input.readMessage(
                                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                                internalGetMutableTimerInstanceReference().getMutableMap().put(
                                        timerInstanceReference__.getKey(), timerInstanceReference__.getValue());
                                bitField0_ |= 0x00000004;
                                break;
                            } // case 26
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }

            private int bitField0_;

            private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();

            private void ensureTimerInstanceIdIsMutable() {
                if (!timerInstanceId_.isModifiable()) {
                    timerInstanceId_ = new com.google.protobuf.LazyStringArrayList(timerInstanceId_);
                }
                bitField0_ |= 0x00000001;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return A list containing the timerInstanceId.
             */
            public com.google.protobuf.ProtocolStringList
                    getTimerInstanceIdList() {
                timerInstanceId_.makeImmutable();
                return timerInstanceId_;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return The count of timerInstanceId.
             */
            public int getTimerInstanceIdCount() {
                return timerInstanceId_.size();
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index of the element to return.
             * @return The timerInstanceId at the given index.
             */
            public java.lang.String getTimerInstanceId(int index) {
                return timerInstanceId_.get(index);
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index of the value to return.
             * @return The bytes of the timerInstanceId at the given index.
             */
            public com.google.protobuf.ByteString
                    getTimerInstanceIdBytes(int index) {
                return timerInstanceId_.getByteString(index);
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index to set the value at.
             * @param value The timerInstanceId to set.
             * @return This builder for chaining.
             */
            public Builder setTimerInstanceId(
                    int index, java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.set(index, value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param value The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param values The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addAllTimerInstanceId(
                    java.lang.Iterable<java.lang.String> values) {
                ensureTimerInstanceIdIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(
                        values, timerInstanceId_);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearTimerInstanceId() {
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                bitField0_ = (bitField0_ & ~0x00000001);
                ;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param value The bytes of the timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            private org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext context_;
            private com.google.protobuf.SingleFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder> contextBuilder_;

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             * 
             * @return Whether the context field is set.
             */
            public boolean hasContext() {
                return ((bitField0_ & 0x00000002) != 0);
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             * 
             * @return The context.
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext getContext() {
                if (contextBuilder_ == null) {
                    return context_ == null ? org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance() : context_;
                } else {
                    return contextBuilder_.getMessage();
                }
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public Builder setContext(org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext value) {
                if (contextBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    context_ = value;
                } else {
                    contextBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public Builder setContext(
                    org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder builderForValue) {
                if (contextBuilder_ == null) {
                    context_ = builderForValue.build();
                } else {
                    contextBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public Builder mergeContext(org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext value) {
                if (contextBuilder_ == null) {
                    if (((bitField0_ & 0x00000002) != 0) &&
                            context_ != null &&
                            context_ != org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance()) {
                        getContextBuilder().mergeFrom(value);
                    } else {
                        context_ = value;
                    }
                } else {
                    contextBuilder_.mergeFrom(value);
                }
                if (context_ != null) {
                    bitField0_ |= 0x00000002;
                    onChanged();
                }
                return this;
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public Builder clearContext() {
                bitField0_ = (bitField0_ & ~0x00000002);
                context_ = null;
                if (contextBuilder_ != null) {
                    contextBuilder_.dispose();
                    contextBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder getContextBuilder() {
                bitField0_ |= 0x00000002;
                onChanged();
                return getContextFieldBuilder().getBuilder();
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder getContextOrBuilder() {
                if (contextBuilder_ != null) {
                    return contextBuilder_.getMessageOrBuilder();
                } else {
                    return context_ == null ? org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance() : context_;
                }
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder>
                    getContextFieldBuilder() {
                if (contextBuilder_ == null) {
                    contextBuilder_ =
                            new com.google.protobuf.SingleFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder>(
                                    getContext(),
                                    getParentForChildren(),
                                    isClean());
                    context_ = null;
                }
                return contextBuilder_;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    return com.google.protobuf.MapField.emptyMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                return timerInstanceReference_;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetMutableTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    timerInstanceReference_ = com.google.protobuf.MapField.newMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                if (!timerInstanceReference_.isMutable()) {
                    timerInstanceReference_ = timerInstanceReference_.copy();
                }
                bitField0_ |= 0x00000004;
                onChanged();
                return timerInstanceReference_;
            }

            public int getTimerInstanceReferenceCount() {
                return internalGetTimerInstanceReference().getMap().size();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public boolean containsTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                return internalGetTimerInstanceReference().getMap().containsKey(key);
            }

            /**
             * Use {@link #getTimerInstanceReferenceMap()} instead.
             */
            @java.lang.Override
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
                return getTimerInstanceReferenceMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
                return internalGetTimerInstanceReference().getMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public /* nullable */
            java.lang.String getTimerInstanceReferenceOrDefault(
                    java.lang.String key,
                    /* nullable */
                    java.lang.String defaultValue) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                return map.containsKey(key) ? map.get(key) : defaultValue;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public java.lang.String getTimerInstanceReferenceOrThrow(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                if (!map.containsKey(key)) {
                    throw new java.lang.IllegalArgumentException();
                }
                return map.get(key);
            }

            public Builder clearTimerInstanceReference() {
                bitField0_ = (bitField0_ & ~0x00000004);
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .clear();
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder removeTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .remove(key);
                return this;
            }

            /**
             * Use alternate mutation accessors instead.
             */
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String>
                    getMutableTimerInstanceReference() {
                bitField0_ |= 0x00000004;
                return internalGetMutableTimerInstanceReference().getMutableMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder putTimerInstanceReference(
                    java.lang.String key,
                    java.lang.String value) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                if (value == null) {
                    throw new NullPointerException("map value");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .put(key, value);
                bitField0_ |= 0x00000004;
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder putAllTimerInstanceReference(
                    java.util.Map<java.lang.String, java.lang.String> values) {
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .putAll(values);
                bitField0_ |= 0x00000004;
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }

            // @@protoc_insertion_point(builder_scope:org.jbpm.flow.serialization.protobuf.DynamicNodeInstanceContent)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.flow.serialization.protobuf.DynamicNodeInstanceContent)
        private static final org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent();
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<DynamicNodeInstanceContent> PARSER = new com.google.protobuf.AbstractParser<DynamicNodeInstanceContent>() {
            @java.lang.Override
            public DynamicNodeInstanceContent parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e)
                            .setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<DynamicNodeInstanceContent> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<DynamicNodeInstanceContent> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.DynamicNodeInstanceContent getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface EventSubProcessNodeInstanceContentOrBuilder extends
            // @@protoc_insertion_point(interface_extends:org.jbpm.flow.serialization.protobuf.EventSubProcessNodeInstanceContent)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.String>
                getTimerInstanceIdList();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        java.lang.String getTimerInstanceId(int index);

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index);

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         * 
         * @return Whether the context field is set.
         */
        boolean hasContext();

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         * 
         * @return The context.
         */
        org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext getContext();

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         */
        org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder getContextOrBuilder();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        int getTimerInstanceReferenceCount();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        boolean containsTimerInstanceReference(
                java.lang.String key);

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Deprecated
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReference();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReferenceMap();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue);

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key);
    }

    /**
     * Protobuf type {@code org.jbpm.flow.serialization.protobuf.EventSubProcessNodeInstanceContent}
     */
    public static final class EventSubProcessNodeInstanceContent extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:org.jbpm.flow.serialization.protobuf.EventSubProcessNodeInstanceContent)
            EventSubProcessNodeInstanceContentOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use EventSubProcessNodeInstanceContent.newBuilder() to construct.
        private EventSubProcessNodeInstanceContent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private EventSubProcessNodeInstanceContent() {
            timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(
                UnusedPrivateParameter unused) {
            return new EventSubProcessNodeInstanceContent();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_EventSubProcessNodeInstanceContent_descriptor;
        }

        @SuppressWarnings({ "rawtypes" })
        @java.lang.Override
        protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                int number) {
            switch (number) {
                case 3:
                    return internalGetTimerInstanceReference();
                default:
                    throw new RuntimeException(
                            "Invalid map field number: " + number);
            }
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_EventSubProcessNodeInstanceContent_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent.class,
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent.Builder.class);
        }

        private int bitField0_;
        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                com.google.protobuf.LazyStringArrayList.emptyList();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        public com.google.protobuf.ProtocolStringList
                getTimerInstanceIdList() {
            return timerInstanceId_;
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public java.lang.String getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        public com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index) {
            return timerInstanceId_.getByteString(index);
        }

        public static final int CONTEXT_FIELD_NUMBER = 2;
        private org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext context_;

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         * 
         * @return Whether the context field is set.
         */
        @java.lang.Override
        public boolean hasContext() {
            return ((bitField0_ & 0x00000001) != 0);
        }

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         * 
         * @return The context.
         */
        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext getContext() {
            return context_ == null ? org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance() : context_;
        }

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         */
        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder getContextOrBuilder() {
            return context_ == null ? org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance() : context_;
        }

        public static final int TIMER_INSTANCE_REFERENCE_FIELD_NUMBER = 3;

        private static final class TimerInstanceReferenceDefaultEntryHolder {
            static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
                    com.google.protobuf.MapEntry.<java.lang.String, java.lang.String> newDefaultInstance(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_EventSubProcessNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "",
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "");
        }

        @SuppressWarnings("serial")
        private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

        private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                internalGetTimerInstanceReference() {
            if (timerInstanceReference_ == null) {
                return com.google.protobuf.MapField.emptyMapField(
                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
            }
            return timerInstanceReference_;
        }

        public int getTimerInstanceReferenceCount() {
            return internalGetTimerInstanceReference().getMap().size();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public boolean containsTimerInstanceReference(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            return internalGetTimerInstanceReference().getMap().containsKey(key);
        }

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Override
        @java.lang.Deprecated
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
            return getTimerInstanceReferenceMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
            return internalGetTimerInstanceReference().getMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            return map.containsKey(key) ? map.get(key) : defaultValue;
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
         */
        @java.lang.Override
        public java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            if (!map.containsKey(key)) {
                throw new java.lang.IllegalArgumentException();
            }
            return map.get(key);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            for (int i = 0; i < timerInstanceId_.size(); i++) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, timerInstanceId_.getRaw(i));
            }
            if (((bitField0_ & 0x00000001) != 0)) {
                output.writeMessage(2, getContext());
            }
            com.google.protobuf.GeneratedMessageV3
                    .serializeStringMapTo(
                            output,
                            internalGetTimerInstanceReference(),
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry,
                            3);
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;

            size = 0;
            {
                int dataSize = 0;
                for (int i = 0; i < timerInstanceId_.size(); i++) {
                    dataSize += computeStringSizeNoTag(timerInstanceId_.getRaw(i));
                }
                size += dataSize;
                size += 1 * getTimerInstanceIdList().size();
            }
            if (((bitField0_ & 0x00000001) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(2, getContext());
            }
            for (java.util.Map.Entry<java.lang.String, java.lang.String> entry : internalGetTimerInstanceReference().getMap().entrySet()) {
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = TimerInstanceReferenceDefaultEntryHolder.defaultEntry.newBuilderForType()
                        .setKey(entry.getKey())
                        .setValue(entry.getValue())
                        .build();
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(3, timerInstanceReference__);
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent)) {
                return super.equals(obj);
            }
            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent other =
                    (org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent) obj;

            if (!getTimerInstanceIdList()
                    .equals(other.getTimerInstanceIdList()))
                return false;
            if (hasContext() != other.hasContext())
                return false;
            if (hasContext()) {
                if (!getContext()
                        .equals(other.getContext()))
                    return false;
            }
            if (!internalGetTimerInstanceReference().equals(
                    other.internalGetTimerInstanceReference()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (getTimerInstanceIdCount() > 0) {
                hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getTimerInstanceIdList().hashCode();
            }
            if (hasContext()) {
                hash = (37 * hash) + CONTEXT_FIELD_NUMBER;
                hash = (53 * hash) + getContext().hashCode();
            }
            if (!internalGetTimerInstanceReference().getMap().isEmpty()) {
                hash = (37 * hash) + TIMER_INSTANCE_REFERENCE_FIELD_NUMBER;
                hash = (53 * hash) + internalGetTimerInstanceReference().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder()
                    : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.jbpm.flow.serialization.protobuf.EventSubProcessNodeInstanceContent}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:org.jbpm.flow.serialization.protobuf.EventSubProcessNodeInstanceContent)
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContentOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                    getDescriptor() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_EventSubProcessNodeInstanceContent_descriptor;
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                    int number) {
                switch (number) {
                    case 3:
                        return internalGetTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
                    int number) {
                switch (number) {
                    case 3:
                        return internalGetMutableTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_EventSubProcessNodeInstanceContent_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent.class,
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent.Builder.class);
            }

            // Construct using org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent.newBuilder()
            private Builder() {
                maybeForceBuilderInitialization();
            }

            private Builder(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
                    getContextFieldBuilder();
                }
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                context_ = null;
                if (contextBuilder_ != null) {
                    contextBuilder_.dispose();
                    contextBuilder_ = null;
                }
                internalGetMutableTimerInstanceReference().clear();
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
                    getDescriptorForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_EventSubProcessNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent getDefaultInstanceForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent.getDefaultInstance();
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent build() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent buildPartial() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent result =
                        new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    timerInstanceId_.makeImmutable();
                    result.timerInstanceId_ = timerInstanceId_;
                }
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.context_ = contextBuilder_ == null
                            ? context_
                            : contextBuilder_.build();
                    to_bitField0_ |= 0x00000001;
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.timerInstanceReference_ = internalGetTimerInstanceReference();
                    result.timerInstanceReference_.makeImmutable();
                }
                result.bitField0_ |= to_bitField0_;
            }

            @java.lang.Override
            public Builder clone() {
                return super.clone();
            }

            @java.lang.Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.setField(field, value);
            }

            @java.lang.Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @java.lang.Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @java.lang.Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, java.lang.Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @java.lang.Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.addRepeatedField(field, value);
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent) {
                    return mergeFrom((org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent other) {
                if (other == org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent.getDefaultInstance())
                    return this;
                if (!other.timerInstanceId_.isEmpty()) {
                    if (timerInstanceId_.isEmpty()) {
                        timerInstanceId_ = other.timerInstanceId_;
                        bitField0_ |= 0x00000001;
                    } else {
                        ensureTimerInstanceIdIsMutable();
                        timerInstanceId_.addAll(other.timerInstanceId_);
                    }
                    onChanged();
                }
                if (other.hasContext()) {
                    mergeContext(other.getContext());
                }
                internalGetMutableTimerInstanceReference().mergeFrom(
                        other.internalGetTimerInstanceReference());
                bitField0_ |= 0x00000004;
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                java.lang.String s = input.readStringRequireUtf8();
                                ensureTimerInstanceIdIsMutable();
                                timerInstanceId_.add(s);
                                break;
                            } // case 10
                            case 18: {
                                input.readMessage(
                                        getContextFieldBuilder().getBuilder(),
                                        extensionRegistry);
                                bitField0_ |= 0x00000002;
                                break;
                            } // case 18
                            case 26: {
                                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = input.readMessage(
                                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                                internalGetMutableTimerInstanceReference().getMutableMap().put(
                                        timerInstanceReference__.getKey(), timerInstanceReference__.getValue());
                                bitField0_ |= 0x00000004;
                                break;
                            } // case 26
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }

            private int bitField0_;

            private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();

            private void ensureTimerInstanceIdIsMutable() {
                if (!timerInstanceId_.isModifiable()) {
                    timerInstanceId_ = new com.google.protobuf.LazyStringArrayList(timerInstanceId_);
                }
                bitField0_ |= 0x00000001;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return A list containing the timerInstanceId.
             */
            public com.google.protobuf.ProtocolStringList
                    getTimerInstanceIdList() {
                timerInstanceId_.makeImmutable();
                return timerInstanceId_;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return The count of timerInstanceId.
             */
            public int getTimerInstanceIdCount() {
                return timerInstanceId_.size();
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index of the element to return.
             * @return The timerInstanceId at the given index.
             */
            public java.lang.String getTimerInstanceId(int index) {
                return timerInstanceId_.get(index);
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index of the value to return.
             * @return The bytes of the timerInstanceId at the given index.
             */
            public com.google.protobuf.ByteString
                    getTimerInstanceIdBytes(int index) {
                return timerInstanceId_.getByteString(index);
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index to set the value at.
             * @param value The timerInstanceId to set.
             * @return This builder for chaining.
             */
            public Builder setTimerInstanceId(
                    int index, java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.set(index, value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param value The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param values The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addAllTimerInstanceId(
                    java.lang.Iterable<java.lang.String> values) {
                ensureTimerInstanceIdIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(
                        values, timerInstanceId_);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearTimerInstanceId() {
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                bitField0_ = (bitField0_ & ~0x00000001);
                ;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param value The bytes of the timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            private org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext context_;
            private com.google.protobuf.SingleFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder> contextBuilder_;

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             * 
             * @return Whether the context field is set.
             */
            public boolean hasContext() {
                return ((bitField0_ & 0x00000002) != 0);
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             * 
             * @return The context.
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext getContext() {
                if (contextBuilder_ == null) {
                    return context_ == null ? org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance() : context_;
                } else {
                    return contextBuilder_.getMessage();
                }
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public Builder setContext(org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext value) {
                if (contextBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    context_ = value;
                } else {
                    contextBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public Builder setContext(
                    org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder builderForValue) {
                if (contextBuilder_ == null) {
                    context_ = builderForValue.build();
                } else {
                    contextBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public Builder mergeContext(org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext value) {
                if (contextBuilder_ == null) {
                    if (((bitField0_ & 0x00000002) != 0) &&
                            context_ != null &&
                            context_ != org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance()) {
                        getContextBuilder().mergeFrom(value);
                    } else {
                        context_ = value;
                    }
                } else {
                    contextBuilder_.mergeFrom(value);
                }
                if (context_ != null) {
                    bitField0_ |= 0x00000002;
                    onChanged();
                }
                return this;
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public Builder clearContext() {
                bitField0_ = (bitField0_ & ~0x00000002);
                context_ = null;
                if (contextBuilder_ != null) {
                    contextBuilder_.dispose();
                    contextBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder getContextBuilder() {
                bitField0_ |= 0x00000002;
                onChanged();
                return getContextFieldBuilder().getBuilder();
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder getContextOrBuilder() {
                if (contextBuilder_ != null) {
                    return contextBuilder_.getMessageOrBuilder();
                } else {
                    return context_ == null ? org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance() : context_;
                }
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder>
                    getContextFieldBuilder() {
                if (contextBuilder_ == null) {
                    contextBuilder_ =
                            new com.google.protobuf.SingleFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder>(
                                    getContext(),
                                    getParentForChildren(),
                                    isClean());
                    context_ = null;
                }
                return contextBuilder_;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    return com.google.protobuf.MapField.emptyMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                return timerInstanceReference_;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetMutableTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    timerInstanceReference_ = com.google.protobuf.MapField.newMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                if (!timerInstanceReference_.isMutable()) {
                    timerInstanceReference_ = timerInstanceReference_.copy();
                }
                bitField0_ |= 0x00000004;
                onChanged();
                return timerInstanceReference_;
            }

            public int getTimerInstanceReferenceCount() {
                return internalGetTimerInstanceReference().getMap().size();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public boolean containsTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                return internalGetTimerInstanceReference().getMap().containsKey(key);
            }

            /**
             * Use {@link #getTimerInstanceReferenceMap()} instead.
             */
            @java.lang.Override
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
                return getTimerInstanceReferenceMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
                return internalGetTimerInstanceReference().getMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public /* nullable */
            java.lang.String getTimerInstanceReferenceOrDefault(
                    java.lang.String key,
                    /* nullable */
                    java.lang.String defaultValue) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                return map.containsKey(key) ? map.get(key) : defaultValue;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            @java.lang.Override
            public java.lang.String getTimerInstanceReferenceOrThrow(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                if (!map.containsKey(key)) {
                    throw new java.lang.IllegalArgumentException();
                }
                return map.get(key);
            }

            public Builder clearTimerInstanceReference() {
                bitField0_ = (bitField0_ & ~0x00000004);
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .clear();
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder removeTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .remove(key);
                return this;
            }

            /**
             * Use alternate mutation accessors instead.
             */
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String>
                    getMutableTimerInstanceReference() {
                bitField0_ |= 0x00000004;
                return internalGetMutableTimerInstanceReference().getMutableMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder putTimerInstanceReference(
                    java.lang.String key,
                    java.lang.String value) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                if (value == null) {
                    throw new NullPointerException("map value");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .put(key, value);
                bitField0_ |= 0x00000004;
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 3;</code>
             */
            public Builder putAllTimerInstanceReference(
                    java.util.Map<java.lang.String, java.lang.String> values) {
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .putAll(values);
                bitField0_ |= 0x00000004;
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }

            // @@protoc_insertion_point(builder_scope:org.jbpm.flow.serialization.protobuf.EventSubProcessNodeInstanceContent)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.flow.serialization.protobuf.EventSubProcessNodeInstanceContent)
        private static final org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent();
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<EventSubProcessNodeInstanceContent> PARSER = new com.google.protobuf.AbstractParser<EventSubProcessNodeInstanceContent>() {
            @java.lang.Override
            public EventSubProcessNodeInstanceContent parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e)
                            .setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<EventSubProcessNodeInstanceContent> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<EventSubProcessNodeInstanceContent> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.EventSubProcessNodeInstanceContent getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface ForEachNodeInstanceContentOrBuilder extends
            // @@protoc_insertion_point(interface_extends:org.jbpm.flow.serialization.protobuf.ForEachNodeInstanceContent)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        java.util.List<java.lang.String>
                getTimerInstanceIdList();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return The count of timerInstanceId.
         */
        int getTimerInstanceIdCount();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        java.lang.String getTimerInstanceId(int index);

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index);

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         * 
         * @return Whether the context field is set.
         */
        boolean hasContext();

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         * 
         * @return The context.
         */
        org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext getContext();

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         */
        org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder getContextOrBuilder();

        /**
         * <code>int32 totalInstances = 3;</code>
         * 
         * @return The totalInstances.
         */
        int getTotalInstances();

        /**
         * <code>int32 executedInstances = 4;</code>
         * 
         * @return The executedInstances.
         */
        int getExecutedInstances();

        /**
         * <code>bool hasAsyncInstances = 5;</code>
         * 
         * @return The hasAsyncInstances.
         */
        boolean getHasAsyncInstances();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 6;</code>
         */
        int getTimerInstanceReferenceCount();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 6;</code>
         */
        boolean containsTimerInstanceReference(
                java.lang.String key);

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Deprecated
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReference();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 6;</code>
         */
        java.util.Map<java.lang.String, java.lang.String>
                getTimerInstanceReferenceMap();

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 6;</code>
         */
        /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue);

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 6;</code>
         */
        java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key);
    }

    /**
     * Protobuf type {@code org.jbpm.flow.serialization.protobuf.ForEachNodeInstanceContent}
     */
    public static final class ForEachNodeInstanceContent extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:org.jbpm.flow.serialization.protobuf.ForEachNodeInstanceContent)
            ForEachNodeInstanceContentOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use ForEachNodeInstanceContent.newBuilder() to construct.
        private ForEachNodeInstanceContent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private ForEachNodeInstanceContent() {
            timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(
                UnusedPrivateParameter unused) {
            return new ForEachNodeInstanceContent();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_ForEachNodeInstanceContent_descriptor;
        }

        @SuppressWarnings({ "rawtypes" })
        @java.lang.Override
        protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                int number) {
            switch (number) {
                case 6:
                    return internalGetTimerInstanceReference();
                default:
                    throw new RuntimeException(
                            "Invalid map field number: " + number);
            }
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_ForEachNodeInstanceContent_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent.class,
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent.Builder.class);
        }

        private int bitField0_;
        public static final int TIMER_INSTANCE_ID_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                com.google.protobuf.LazyStringArrayList.emptyList();

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return A list containing the timerInstanceId.
         */
        public com.google.protobuf.ProtocolStringList
                getTimerInstanceIdList() {
            return timerInstanceId_;
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @return The count of timerInstanceId.
         */
        public int getTimerInstanceIdCount() {
            return timerInstanceId_.size();
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the element to return.
         * @return The timerInstanceId at the given index.
         */
        public java.lang.String getTimerInstanceId(int index) {
            return timerInstanceId_.get(index);
        }

        /**
         * <code>repeated string timer_instance_id = 1;</code>
         * 
         * @param index The index of the value to return.
         * @return The bytes of the timerInstanceId at the given index.
         */
        public com.google.protobuf.ByteString
                getTimerInstanceIdBytes(int index) {
            return timerInstanceId_.getByteString(index);
        }

        public static final int CONTEXT_FIELD_NUMBER = 2;
        private org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext context_;

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         * 
         * @return Whether the context field is set.
         */
        @java.lang.Override
        public boolean hasContext() {
            return ((bitField0_ & 0x00000001) != 0);
        }

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         * 
         * @return The context.
         */
        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext getContext() {
            return context_ == null ? org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance() : context_;
        }

        /**
         * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
         */
        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder getContextOrBuilder() {
            return context_ == null ? org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance() : context_;
        }

        public static final int TOTALINSTANCES_FIELD_NUMBER = 3;
        private int totalInstances_ = 0;

        /**
         * <code>int32 totalInstances = 3;</code>
         * 
         * @return The totalInstances.
         */
        @java.lang.Override
        public int getTotalInstances() {
            return totalInstances_;
        }

        public static final int EXECUTEDINSTANCES_FIELD_NUMBER = 4;
        private int executedInstances_ = 0;

        /**
         * <code>int32 executedInstances = 4;</code>
         * 
         * @return The executedInstances.
         */
        @java.lang.Override
        public int getExecutedInstances() {
            return executedInstances_;
        }

        public static final int HASASYNCINSTANCES_FIELD_NUMBER = 5;
        private boolean hasAsyncInstances_ = false;

        /**
         * <code>bool hasAsyncInstances = 5;</code>
         * 
         * @return The hasAsyncInstances.
         */
        @java.lang.Override
        public boolean getHasAsyncInstances() {
            return hasAsyncInstances_;
        }

        public static final int TIMER_INSTANCE_REFERENCE_FIELD_NUMBER = 6;

        private static final class TimerInstanceReferenceDefaultEntryHolder {
            static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
                    com.google.protobuf.MapEntry.<java.lang.String, java.lang.String> newDefaultInstance(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_ForEachNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "",
                            com.google.protobuf.WireFormat.FieldType.STRING,
                            "");
        }

        @SuppressWarnings("serial")
        private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

        private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                internalGetTimerInstanceReference() {
            if (timerInstanceReference_ == null) {
                return com.google.protobuf.MapField.emptyMapField(
                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
            }
            return timerInstanceReference_;
        }

        public int getTimerInstanceReferenceCount() {
            return internalGetTimerInstanceReference().getMap().size();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 6;</code>
         */
        @java.lang.Override
        public boolean containsTimerInstanceReference(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            return internalGetTimerInstanceReference().getMap().containsKey(key);
        }

        /**
         * Use {@link #getTimerInstanceReferenceMap()} instead.
         */
        @java.lang.Override
        @java.lang.Deprecated
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
            return getTimerInstanceReferenceMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 6;</code>
         */
        @java.lang.Override
        public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
            return internalGetTimerInstanceReference().getMap();
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 6;</code>
         */
        @java.lang.Override
        public /* nullable */
        java.lang.String getTimerInstanceReferenceOrDefault(
                java.lang.String key,
                /* nullable */
                java.lang.String defaultValue) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            return map.containsKey(key) ? map.get(key) : defaultValue;
        }

        /**
         * <code>map&lt;string, string&gt; timer_instance_reference = 6;</code>
         */
        @java.lang.Override
        public java.lang.String getTimerInstanceReferenceOrThrow(
                java.lang.String key) {
            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<java.lang.String, java.lang.String> map =
                    internalGetTimerInstanceReference().getMap();
            if (!map.containsKey(key)) {
                throw new java.lang.IllegalArgumentException();
            }
            return map.get(key);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            for (int i = 0; i < timerInstanceId_.size(); i++) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, timerInstanceId_.getRaw(i));
            }
            if (((bitField0_ & 0x00000001) != 0)) {
                output.writeMessage(2, getContext());
            }
            if (totalInstances_ != 0) {
                output.writeInt32(3, totalInstances_);
            }
            if (executedInstances_ != 0) {
                output.writeInt32(4, executedInstances_);
            }
            if (hasAsyncInstances_ != false) {
                output.writeBool(5, hasAsyncInstances_);
            }
            com.google.protobuf.GeneratedMessageV3
                    .serializeStringMapTo(
                            output,
                            internalGetTimerInstanceReference(),
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry,
                            6);
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;

            size = 0;
            {
                int dataSize = 0;
                for (int i = 0; i < timerInstanceId_.size(); i++) {
                    dataSize += computeStringSizeNoTag(timerInstanceId_.getRaw(i));
                }
                size += dataSize;
                size += 1 * getTimerInstanceIdList().size();
            }
            if (((bitField0_ & 0x00000001) != 0)) {
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(2, getContext());
            }
            if (totalInstances_ != 0) {
                size += com.google.protobuf.CodedOutputStream
                        .computeInt32Size(3, totalInstances_);
            }
            if (executedInstances_ != 0) {
                size += com.google.protobuf.CodedOutputStream
                        .computeInt32Size(4, executedInstances_);
            }
            if (hasAsyncInstances_ != false) {
                size += com.google.protobuf.CodedOutputStream
                        .computeBoolSize(5, hasAsyncInstances_);
            }
            for (java.util.Map.Entry<java.lang.String, java.lang.String> entry : internalGetTimerInstanceReference().getMap().entrySet()) {
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = TimerInstanceReferenceDefaultEntryHolder.defaultEntry.newBuilderForType()
                        .setKey(entry.getKey())
                        .setValue(entry.getValue())
                        .build();
                size += com.google.protobuf.CodedOutputStream
                        .computeMessageSize(6, timerInstanceReference__);
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent)) {
                return super.equals(obj);
            }
            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent other =
                    (org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent) obj;

            if (!getTimerInstanceIdList()
                    .equals(other.getTimerInstanceIdList()))
                return false;
            if (hasContext() != other.hasContext())
                return false;
            if (hasContext()) {
                if (!getContext()
                        .equals(other.getContext()))
                    return false;
            }
            if (getTotalInstances() != other.getTotalInstances())
                return false;
            if (getExecutedInstances() != other.getExecutedInstances())
                return false;
            if (getHasAsyncInstances() != other.getHasAsyncInstances())
                return false;
            if (!internalGetTimerInstanceReference().equals(
                    other.internalGetTimerInstanceReference()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            if (getTimerInstanceIdCount() > 0) {
                hash = (37 * hash) + TIMER_INSTANCE_ID_FIELD_NUMBER;
                hash = (53 * hash) + getTimerInstanceIdList().hashCode();
            }
            if (hasContext()) {
                hash = (37 * hash) + CONTEXT_FIELD_NUMBER;
                hash = (53 * hash) + getContext().hashCode();
            }
            hash = (37 * hash) + TOTALINSTANCES_FIELD_NUMBER;
            hash = (53 * hash) + getTotalInstances();
            hash = (37 * hash) + EXECUTEDINSTANCES_FIELD_NUMBER;
            hash = (53 * hash) + getExecutedInstances();
            hash = (37 * hash) + HASASYNCINSTANCES_FIELD_NUMBER;
            hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
                    getHasAsyncInstances());
            if (!internalGetTimerInstanceReference().getMap().isEmpty()) {
                hash = (37 * hash) + TIMER_INSTANCE_REFERENCE_FIELD_NUMBER;
                hash = (53 * hash) + internalGetTimerInstanceReference().hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder()
                    : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.jbpm.flow.serialization.protobuf.ForEachNodeInstanceContent}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:org.jbpm.flow.serialization.protobuf.ForEachNodeInstanceContent)
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContentOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                    getDescriptor() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_ForEachNodeInstanceContent_descriptor;
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(
                    int number) {
                switch (number) {
                    case 6:
                        return internalGetTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @SuppressWarnings({ "rawtypes" })
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(
                    int number) {
                switch (number) {
                    case 6:
                        return internalGetMutableTimerInstanceReference();
                    default:
                        throw new RuntimeException(
                                "Invalid map field number: " + number);
                }
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_ForEachNodeInstanceContent_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent.class,
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent.Builder.class);
            }

            // Construct using org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent.newBuilder()
            private Builder() {
                maybeForceBuilderInitialization();
            }

            private Builder(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);
                maybeForceBuilderInitialization();
            }

            private void maybeForceBuilderInitialization() {
                if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
                    getContextFieldBuilder();
                }
            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                context_ = null;
                if (contextBuilder_ != null) {
                    contextBuilder_.dispose();
                    contextBuilder_ = null;
                }
                totalInstances_ = 0;
                executedInstances_ = 0;
                hasAsyncInstances_ = false;
                internalGetMutableTimerInstanceReference().clear();
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
                    getDescriptorForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_ForEachNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent getDefaultInstanceForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent.getDefaultInstance();
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent build() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent buildPartial() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent result =
                        new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    timerInstanceId_.makeImmutable();
                    result.timerInstanceId_ = timerInstanceId_;
                }
                int to_bitField0_ = 0;
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    result.context_ = contextBuilder_ == null
                            ? context_
                            : contextBuilder_.build();
                    to_bitField0_ |= 0x00000001;
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    result.totalInstances_ = totalInstances_;
                }
                if (((from_bitField0_ & 0x00000008) != 0)) {
                    result.executedInstances_ = executedInstances_;
                }
                if (((from_bitField0_ & 0x00000010) != 0)) {
                    result.hasAsyncInstances_ = hasAsyncInstances_;
                }
                if (((from_bitField0_ & 0x00000020) != 0)) {
                    result.timerInstanceReference_ = internalGetTimerInstanceReference();
                    result.timerInstanceReference_.makeImmutable();
                }
                result.bitField0_ |= to_bitField0_;
            }

            @java.lang.Override
            public Builder clone() {
                return super.clone();
            }

            @java.lang.Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.setField(field, value);
            }

            @java.lang.Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @java.lang.Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @java.lang.Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, java.lang.Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @java.lang.Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.addRepeatedField(field, value);
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent) {
                    return mergeFrom((org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent other) {
                if (other == org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent.getDefaultInstance())
                    return this;
                if (!other.timerInstanceId_.isEmpty()) {
                    if (timerInstanceId_.isEmpty()) {
                        timerInstanceId_ = other.timerInstanceId_;
                        bitField0_ |= 0x00000001;
                    } else {
                        ensureTimerInstanceIdIsMutable();
                        timerInstanceId_.addAll(other.timerInstanceId_);
                    }
                    onChanged();
                }
                if (other.hasContext()) {
                    mergeContext(other.getContext());
                }
                if (other.getTotalInstances() != 0) {
                    setTotalInstances(other.getTotalInstances());
                }
                if (other.getExecutedInstances() != 0) {
                    setExecutedInstances(other.getExecutedInstances());
                }
                if (other.getHasAsyncInstances() != false) {
                    setHasAsyncInstances(other.getHasAsyncInstances());
                }
                internalGetMutableTimerInstanceReference().mergeFrom(
                        other.internalGetTimerInstanceReference());
                bitField0_ |= 0x00000020;
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                java.lang.String s = input.readStringRequireUtf8();
                                ensureTimerInstanceIdIsMutable();
                                timerInstanceId_.add(s);
                                break;
                            } // case 10
                            case 18: {
                                input.readMessage(
                                        getContextFieldBuilder().getBuilder(),
                                        extensionRegistry);
                                bitField0_ |= 0x00000002;
                                break;
                            } // case 18
                            case 24: {
                                totalInstances_ = input.readInt32();
                                bitField0_ |= 0x00000004;
                                break;
                            } // case 24
                            case 32: {
                                executedInstances_ = input.readInt32();
                                bitField0_ |= 0x00000008;
                                break;
                            } // case 32
                            case 40: {
                                hasAsyncInstances_ = input.readBool();
                                bitField0_ |= 0x00000010;
                                break;
                            } // case 40
                            case 50: {
                                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> timerInstanceReference__ = input.readMessage(
                                        TimerInstanceReferenceDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                                internalGetMutableTimerInstanceReference().getMutableMap().put(
                                        timerInstanceReference__.getKey(), timerInstanceReference__.getValue());
                                bitField0_ |= 0x00000020;
                                break;
                            } // case 50
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }

            private int bitField0_;

            private com.google.protobuf.LazyStringArrayList timerInstanceId_ =
                    com.google.protobuf.LazyStringArrayList.emptyList();

            private void ensureTimerInstanceIdIsMutable() {
                if (!timerInstanceId_.isModifiable()) {
                    timerInstanceId_ = new com.google.protobuf.LazyStringArrayList(timerInstanceId_);
                }
                bitField0_ |= 0x00000001;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return A list containing the timerInstanceId.
             */
            public com.google.protobuf.ProtocolStringList
                    getTimerInstanceIdList() {
                timerInstanceId_.makeImmutable();
                return timerInstanceId_;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return The count of timerInstanceId.
             */
            public int getTimerInstanceIdCount() {
                return timerInstanceId_.size();
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index of the element to return.
             * @return The timerInstanceId at the given index.
             */
            public java.lang.String getTimerInstanceId(int index) {
                return timerInstanceId_.get(index);
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index of the value to return.
             * @return The bytes of the timerInstanceId at the given index.
             */
            public com.google.protobuf.ByteString
                    getTimerInstanceIdBytes(int index) {
                return timerInstanceId_.getByteString(index);
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param index The index to set the value at.
             * @param value The timerInstanceId to set.
             * @return This builder for chaining.
             */
            public Builder setTimerInstanceId(
                    int index, java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.set(index, value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param value The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param values The timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addAllTimerInstanceId(
                    java.lang.Iterable<java.lang.String> values) {
                ensureTimerInstanceIdIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(
                        values, timerInstanceId_);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearTimerInstanceId() {
                timerInstanceId_ =
                        com.google.protobuf.LazyStringArrayList.emptyList();
                bitField0_ = (bitField0_ & ~0x00000001);
                ;
                onChanged();
                return this;
            }

            /**
             * <code>repeated string timer_instance_id = 1;</code>
             * 
             * @param value The bytes of the timerInstanceId to add.
             * @return This builder for chaining.
             */
            public Builder addTimerInstanceIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                ensureTimerInstanceIdIsMutable();
                timerInstanceId_.add(value);
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            private org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext context_;
            private com.google.protobuf.SingleFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder> contextBuilder_;

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             * 
             * @return Whether the context field is set.
             */
            public boolean hasContext() {
                return ((bitField0_ & 0x00000002) != 0);
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             * 
             * @return The context.
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext getContext() {
                if (contextBuilder_ == null) {
                    return context_ == null ? org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance() : context_;
                } else {
                    return contextBuilder_.getMessage();
                }
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public Builder setContext(org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext value) {
                if (contextBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    context_ = value;
                } else {
                    contextBuilder_.setMessage(value);
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public Builder setContext(
                    org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder builderForValue) {
                if (contextBuilder_ == null) {
                    context_ = builderForValue.build();
                } else {
                    contextBuilder_.setMessage(builderForValue.build());
                }
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public Builder mergeContext(org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext value) {
                if (contextBuilder_ == null) {
                    if (((bitField0_ & 0x00000002) != 0) &&
                            context_ != null &&
                            context_ != org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance()) {
                        getContextBuilder().mergeFrom(value);
                    } else {
                        context_ = value;
                    }
                } else {
                    contextBuilder_.mergeFrom(value);
                }
                if (context_ != null) {
                    bitField0_ |= 0x00000002;
                    onChanged();
                }
                return this;
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public Builder clearContext() {
                bitField0_ = (bitField0_ & ~0x00000002);
                context_ = null;
                if (contextBuilder_ != null) {
                    contextBuilder_.dispose();
                    contextBuilder_ = null;
                }
                onChanged();
                return this;
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder getContextBuilder() {
                bitField0_ |= 0x00000002;
                onChanged();
                return getContextFieldBuilder().getBuilder();
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            public org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder getContextOrBuilder() {
                if (contextBuilder_ != null) {
                    return contextBuilder_.getMessageOrBuilder();
                } else {
                    return context_ == null ? org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.getDefaultInstance() : context_;
                }
            }

            /**
             * <code>.org.jbpm.flow.serialization.protobuf.WorkflowContext context = 2;</code>
             */
            private com.google.protobuf.SingleFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder>
                    getContextFieldBuilder() {
                if (contextBuilder_ == null) {
                    contextBuilder_ =
                            new com.google.protobuf.SingleFieldBuilderV3<org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContext.Builder, org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.WorkflowContextOrBuilder>(
                                    getContext(),
                                    getParentForChildren(),
                                    isClean());
                    context_ = null;
                }
                return contextBuilder_;
            }

            private int totalInstances_;

            /**
             * <code>int32 totalInstances = 3;</code>
             * 
             * @return The totalInstances.
             */
            @java.lang.Override
            public int getTotalInstances() {
                return totalInstances_;
            }

            /**
             * <code>int32 totalInstances = 3;</code>
             * 
             * @param value The totalInstances to set.
             * @return This builder for chaining.
             */
            public Builder setTotalInstances(int value) {

                totalInstances_ = value;
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }

            /**
             * <code>int32 totalInstances = 3;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearTotalInstances() {
                bitField0_ = (bitField0_ & ~0x00000004);
                totalInstances_ = 0;
                onChanged();
                return this;
            }

            private int executedInstances_;

            /**
             * <code>int32 executedInstances = 4;</code>
             * 
             * @return The executedInstances.
             */
            @java.lang.Override
            public int getExecutedInstances() {
                return executedInstances_;
            }

            /**
             * <code>int32 executedInstances = 4;</code>
             * 
             * @param value The executedInstances to set.
             * @return This builder for chaining.
             */
            public Builder setExecutedInstances(int value) {

                executedInstances_ = value;
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }

            /**
             * <code>int32 executedInstances = 4;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearExecutedInstances() {
                bitField0_ = (bitField0_ & ~0x00000008);
                executedInstances_ = 0;
                onChanged();
                return this;
            }

            private boolean hasAsyncInstances_;

            /**
             * <code>bool hasAsyncInstances = 5;</code>
             * 
             * @return The hasAsyncInstances.
             */
            @java.lang.Override
            public boolean getHasAsyncInstances() {
                return hasAsyncInstances_;
            }

            /**
             * <code>bool hasAsyncInstances = 5;</code>
             * 
             * @param value The hasAsyncInstances to set.
             * @return This builder for chaining.
             */
            public Builder setHasAsyncInstances(boolean value) {

                hasAsyncInstances_ = value;
                bitField0_ |= 0x00000010;
                onChanged();
                return this;
            }

            /**
             * <code>bool hasAsyncInstances = 5;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearHasAsyncInstances() {
                bitField0_ = (bitField0_ & ~0x00000010);
                hasAsyncInstances_ = false;
                onChanged();
                return this;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String> timerInstanceReference_;

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    return com.google.protobuf.MapField.emptyMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                return timerInstanceReference_;
            }

            private com.google.protobuf.MapField<java.lang.String, java.lang.String>
                    internalGetMutableTimerInstanceReference() {
                if (timerInstanceReference_ == null) {
                    timerInstanceReference_ = com.google.protobuf.MapField.newMapField(
                            TimerInstanceReferenceDefaultEntryHolder.defaultEntry);
                }
                if (!timerInstanceReference_.isMutable()) {
                    timerInstanceReference_ = timerInstanceReference_.copy();
                }
                bitField0_ |= 0x00000020;
                onChanged();
                return timerInstanceReference_;
            }

            public int getTimerInstanceReferenceCount() {
                return internalGetTimerInstanceReference().getMap().size();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 6;</code>
             */
            @java.lang.Override
            public boolean containsTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                return internalGetTimerInstanceReference().getMap().containsKey(key);
            }

            /**
             * Use {@link #getTimerInstanceReferenceMap()} instead.
             */
            @java.lang.Override
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReference() {
                return getTimerInstanceReferenceMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 6;</code>
             */
            @java.lang.Override
            public java.util.Map<java.lang.String, java.lang.String> getTimerInstanceReferenceMap() {
                return internalGetTimerInstanceReference().getMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 6;</code>
             */
            @java.lang.Override
            public /* nullable */
            java.lang.String getTimerInstanceReferenceOrDefault(
                    java.lang.String key,
                    /* nullable */
                    java.lang.String defaultValue) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                return map.containsKey(key) ? map.get(key) : defaultValue;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 6;</code>
             */
            @java.lang.Override
            public java.lang.String getTimerInstanceReferenceOrThrow(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<java.lang.String, java.lang.String> map =
                        internalGetTimerInstanceReference().getMap();
                if (!map.containsKey(key)) {
                    throw new java.lang.IllegalArgumentException();
                }
                return map.get(key);
            }

            public Builder clearTimerInstanceReference() {
                bitField0_ = (bitField0_ & ~0x00000020);
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .clear();
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 6;</code>
             */
            public Builder removeTimerInstanceReference(
                    java.lang.String key) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .remove(key);
                return this;
            }

            /**
             * Use alternate mutation accessors instead.
             */
            @java.lang.Deprecated
            public java.util.Map<java.lang.String, java.lang.String>
                    getMutableTimerInstanceReference() {
                bitField0_ |= 0x00000020;
                return internalGetMutableTimerInstanceReference().getMutableMap();
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 6;</code>
             */
            public Builder putTimerInstanceReference(
                    java.lang.String key,
                    java.lang.String value) {
                if (key == null) {
                    throw new NullPointerException("map key");
                }
                if (value == null) {
                    throw new NullPointerException("map value");
                }
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .put(key, value);
                bitField0_ |= 0x00000020;
                return this;
            }

            /**
             * <code>map&lt;string, string&gt; timer_instance_reference = 6;</code>
             */
            public Builder putAllTimerInstanceReference(
                    java.util.Map<java.lang.String, java.lang.String> values) {
                internalGetMutableTimerInstanceReference().getMutableMap()
                        .putAll(values);
                bitField0_ |= 0x00000020;
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }

            // @@protoc_insertion_point(builder_scope:org.jbpm.flow.serialization.protobuf.ForEachNodeInstanceContent)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.flow.serialization.protobuf.ForEachNodeInstanceContent)
        private static final org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent();
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<ForEachNodeInstanceContent> PARSER = new com.google.protobuf.AbstractParser<ForEachNodeInstanceContent>() {
            @java.lang.Override
            public ForEachNodeInstanceContent parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e)
                            .setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<ForEachNodeInstanceContent> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<ForEachNodeInstanceContent> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.ForEachNodeInstanceContent getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    public interface AsyncEventNodeInstanceContentOrBuilder extends
            // @@protoc_insertion_point(interface_extends:org.jbpm.flow.serialization.protobuf.AsyncEventNodeInstanceContent)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <code>string job_id = 1;</code>
         * 
         * @return The jobId.
         */
        java.lang.String getJobId();

        /**
         * <code>string job_id = 1;</code>
         * 
         * @return The bytes for jobId.
         */
        com.google.protobuf.ByteString
                getJobIdBytes();
    }

    /**
     * Protobuf type {@code org.jbpm.flow.serialization.protobuf.AsyncEventNodeInstanceContent}
     */
    public static final class AsyncEventNodeInstanceContent extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:org.jbpm.flow.serialization.protobuf.AsyncEventNodeInstanceContent)
            AsyncEventNodeInstanceContentOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use AsyncEventNodeInstanceContent.newBuilder() to construct.
        private AsyncEventNodeInstanceContent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
            super(builder);
        }

        private AsyncEventNodeInstanceContent() {
            jobId_ = "";
        }

        @java.lang.Override
        @SuppressWarnings({ "unused" })
        protected java.lang.Object newInstance(
                UnusedPrivateParameter unused) {
            return new AsyncEventNodeInstanceContent();
        }

        public static final com.google.protobuf.Descriptors.Descriptor
                getDescriptor() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_AsyncEventNodeInstanceContent_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                internalGetFieldAccessorTable() {
            return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_AsyncEventNodeInstanceContent_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent.class,
                            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent.Builder.class);
        }

        public static final int JOB_ID_FIELD_NUMBER = 1;
        @SuppressWarnings("serial")
        private volatile java.lang.Object jobId_ = "";

        /**
         * <code>string job_id = 1;</code>
         * 
         * @return The jobId.
         */
        @java.lang.Override
        public java.lang.String getJobId() {
            java.lang.Object ref = jobId_;
            if (ref instanceof java.lang.String) {
                return (java.lang.String) ref;
            } else {
                com.google.protobuf.ByteString bs =
                        (com.google.protobuf.ByteString) ref;
                java.lang.String s = bs.toStringUtf8();
                jobId_ = s;
                return s;
            }
        }

        /**
         * <code>string job_id = 1;</code>
         * 
         * @return The bytes for jobId.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
                getJobIdBytes() {
            java.lang.Object ref = jobId_;
            if (ref instanceof java.lang.String) {
                com.google.protobuf.ByteString b =
                        com.google.protobuf.ByteString.copyFromUtf8(
                                (java.lang.String) ref);
                jobId_ = b;
                return b;
            } else {
                return (com.google.protobuf.ByteString) ref;
            }
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
            byte isInitialized = memoizedIsInitialized;
            if (isInitialized == 1)
                return true;
            if (isInitialized == 0)
                return false;

            memoizedIsInitialized = 1;
            return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(jobId_)) {
                com.google.protobuf.GeneratedMessageV3.writeString(output, 1, jobId_);
            }
            getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
            int size = memoizedSize;
            if (size != -1)
                return size;

            size = 0;
            if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(jobId_)) {
                size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, jobId_);
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
            if (obj == this) {
                return true;
            }
            if (!(obj instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent)) {
                return super.equals(obj);
            }
            org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent other =
                    (org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent) obj;

            if (!getJobId()
                    .equals(other.getJobId()))
                return false;
            if (!getUnknownFields().equals(other.getUnknownFields()))
                return false;
            return true;
        }

        @java.lang.Override
        public int hashCode() {
            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            hash = (37 * hash) + JOB_ID_FIELD_NUMBER;
            hash = (53 * hash) + getJobId().hashCode();
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
            return PARSER.parseFrom(data, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent parseFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input);
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
            return com.google.protobuf.GeneratedMessageV3
                    .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
            return newBuilder();
        }

        public static Builder newBuilder() {
            return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent prototype) {
            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
            return this == DEFAULT_INSTANCE
                    ? new Builder()
                    : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            Builder builder = new Builder(parent);
            return builder;
        }

        /**
         * Protobuf type {@code org.jbpm.flow.serialization.protobuf.AsyncEventNodeInstanceContent}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:org.jbpm.flow.serialization.protobuf.AsyncEventNodeInstanceContent)
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContentOrBuilder {
            public static final com.google.protobuf.Descriptors.Descriptor
                    getDescriptor() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_AsyncEventNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
                    internalGetFieldAccessorTable() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_AsyncEventNodeInstanceContent_fieldAccessorTable
                        .ensureFieldAccessorsInitialized(
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent.class,
                                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent.Builder.class);
            }

            // Construct using org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent.newBuilder()
            private Builder() {

            }

            private Builder(
                    com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
                super(parent);

            }

            @java.lang.Override
            public Builder clear() {
                super.clear();
                bitField0_ = 0;
                jobId_ = "";
                return this;
            }

            @java.lang.Override
            public com.google.protobuf.Descriptors.Descriptor
                    getDescriptorForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.internal_static_org_jbpm_flow_serialization_protobuf_AsyncEventNodeInstanceContent_descriptor;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent getDefaultInstanceForType() {
                return org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent.getDefaultInstance();
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent build() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }

            @java.lang.Override
            public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent buildPartial() {
                org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent result =
                        new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent(this);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }

            private void buildPartial0(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent result) {
                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.jobId_ = jobId_;
                }
            }

            @java.lang.Override
            public Builder clone() {
                return super.clone();
            }

            @java.lang.Override
            public Builder setField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.setField(field, value);
            }

            @java.lang.Override
            public Builder clearField(
                    com.google.protobuf.Descriptors.FieldDescriptor field) {
                return super.clearField(field);
            }

            @java.lang.Override
            public Builder clearOneof(
                    com.google.protobuf.Descriptors.OneofDescriptor oneof) {
                return super.clearOneof(oneof);
            }

            @java.lang.Override
            public Builder setRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    int index, java.lang.Object value) {
                return super.setRepeatedField(field, index, value);
            }

            @java.lang.Override
            public Builder addRepeatedField(
                    com.google.protobuf.Descriptors.FieldDescriptor field,
                    java.lang.Object value) {
                return super.addRepeatedField(field, value);
            }

            @java.lang.Override
            public Builder mergeFrom(com.google.protobuf.Message other) {
                if (other instanceof org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent) {
                    return mergeFrom((org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }

            public Builder mergeFrom(org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent other) {
                if (other == org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent.getDefaultInstance())
                    return this;
                if (!other.getJobId().isEmpty()) {
                    jobId_ = other.jobId_;
                    bitField0_ |= 0x00000001;
                    onChanged();
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }

            @java.lang.Override
            public final boolean isInitialized() {
                return true;
            }

            @java.lang.Override
            public Builder mergeFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws java.io.IOException {
                if (extensionRegistry == null) {
                    throw new java.lang.NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 10: {
                                jobId_ = input.readStringRequireUtf8();
                                bitField0_ |= 0x00000001;
                                break;
                            } // case 10
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }

            private int bitField0_;

            private java.lang.Object jobId_ = "";

            /**
             * <code>string job_id = 1;</code>
             * 
             * @return The jobId.
             */
            public java.lang.String getJobId() {
                java.lang.Object ref = jobId_;
                if (!(ref instanceof java.lang.String)) {
                    com.google.protobuf.ByteString bs =
                            (com.google.protobuf.ByteString) ref;
                    java.lang.String s = bs.toStringUtf8();
                    jobId_ = s;
                    return s;
                } else {
                    return (java.lang.String) ref;
                }
            }

            /**
             * <code>string job_id = 1;</code>
             * 
             * @return The bytes for jobId.
             */
            public com.google.protobuf.ByteString
                    getJobIdBytes() {
                java.lang.Object ref = jobId_;
                if (ref instanceof String) {
                    com.google.protobuf.ByteString b =
                            com.google.protobuf.ByteString.copyFromUtf8(
                                    (java.lang.String) ref);
                    jobId_ = b;
                    return b;
                } else {
                    return (com.google.protobuf.ByteString) ref;
                }
            }

            /**
             * <code>string job_id = 1;</code>
             * 
             * @param value The jobId to set.
             * @return This builder for chaining.
             */
            public Builder setJobId(
                    java.lang.String value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                jobId_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            /**
             * <code>string job_id = 1;</code>
             * 
             * @return This builder for chaining.
             */
            public Builder clearJobId() {
                jobId_ = getDefaultInstance().getJobId();
                bitField0_ = (bitField0_ & ~0x00000001);
                onChanged();
                return this;
            }

            /**
             * <code>string job_id = 1;</code>
             * 
             * @param value The bytes for jobId to set.
             * @return This builder for chaining.
             */
            public Builder setJobIdBytes(
                    com.google.protobuf.ByteString value) {
                if (value == null) {
                    throw new NullPointerException();
                }
                checkByteStringIsUtf8(value);
                jobId_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }

            @java.lang.Override
            public final Builder setUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.setUnknownFields(unknownFields);
            }

            @java.lang.Override
            public final Builder mergeUnknownFields(
                    final com.google.protobuf.UnknownFieldSet unknownFields) {
                return super.mergeUnknownFields(unknownFields);
            }

            // @@protoc_insertion_point(builder_scope:org.jbpm.flow.serialization.protobuf.AsyncEventNodeInstanceContent)
        }

        // @@protoc_insertion_point(class_scope:org.jbpm.flow.serialization.protobuf.AsyncEventNodeInstanceContent)
        private static final org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent DEFAULT_INSTANCE;
        static {
            DEFAULT_INSTANCE = new org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent();
        }

        public static org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent getDefaultInstance() {
            return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<AsyncEventNodeInstanceContent> PARSER = new com.google.protobuf.AbstractParser<AsyncEventNodeInstanceContent>() {
            @java.lang.Override
            public AsyncEventNodeInstanceContent parsePartialFrom(
                    com.google.protobuf.CodedInputStream input,
                    com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                    throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e)
                            .setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };

        public static com.google.protobuf.Parser<AsyncEventNodeInstanceContent> parser() {
            return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<AsyncEventNodeInstanceContent> getParserForType() {
            return PARSER;
        }

        @java.lang.Override
        public org.jbpm.flow.serialization.protobuf.KogitoNodeInstanceContentsProtobuf.AsyncEventNodeInstanceContent getDefaultInstanceForType() {
            return DEFAULT_INSTANCE;
        }

    }

    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_RuleSetNodeInstanceContent_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_RuleSetNodeInstanceContent_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_RuleSetNodeInstanceContent_TimerInstanceReferenceEntry_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_RuleSetNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_WorkItemNodeInstanceContent_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_WorkItemNodeInstanceContent_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_WorkItemNodeInstanceContent_TimerInstanceReferenceEntry_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_WorkItemNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_LambdaSubProcessNodeInstanceContent_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_LambdaSubProcessNodeInstanceContent_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_LambdaSubProcessNodeInstanceContent_TimerInstanceReferenceEntry_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_LambdaSubProcessNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_SubProcessNodeInstanceContent_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_SubProcessNodeInstanceContent_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_SubProcessNodeInstanceContent_TimerInstanceReferenceEntry_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_SubProcessNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_MilestoneNodeInstanceContent_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_MilestoneNodeInstanceContent_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_MilestoneNodeInstanceContent_TimerInstanceReferenceEntry_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_MilestoneNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_EventNodeInstanceContent_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_EventNodeInstanceContent_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_TimerNodeInstanceContent_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_TimerNodeInstanceContent_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_JoinTrigger_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_JoinTrigger_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_StateNodeInstanceContent_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_StateNodeInstanceContent_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_StateNodeInstanceContent_TimerInstanceReferenceEntry_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_StateNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_CompositeContextNodeInstanceContent_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_CompositeContextNodeInstanceContent_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_CompositeContextNodeInstanceContent_TimerInstanceReferenceEntry_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_CompositeContextNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_DynamicNodeInstanceContent_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_DynamicNodeInstanceContent_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_DynamicNodeInstanceContent_TimerInstanceReferenceEntry_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_DynamicNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_EventSubProcessNodeInstanceContent_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_EventSubProcessNodeInstanceContent_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_EventSubProcessNodeInstanceContent_TimerInstanceReferenceEntry_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_EventSubProcessNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_ForEachNodeInstanceContent_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_ForEachNodeInstanceContent_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_ForEachNodeInstanceContent_TimerInstanceReferenceEntry_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_ForEachNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_org_jbpm_flow_serialization_protobuf_AsyncEventNodeInstanceContent_descriptor;
    private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_org_jbpm_flow_serialization_protobuf_AsyncEventNodeInstanceContent_fieldAccessorTable;

    public static com.google.protobuf.Descriptors.FileDescriptor
            getDescriptor() {
        return descriptor;
    }

    private static com.google.protobuf.Descriptors.FileDescriptor descriptor;
    static {
        java.lang.String[] descriptorData = {
                "\nHorg/jbpm/flow/serialization/protobuf/k" +
                        "ogito_node_instance_contents.proto\022$org." +
                        "jbpm.flow.serialization.protobuf\0327org/jb" +
                        "pm/flow/serialization/protobuf/kogito_ty" +
                        "pes.proto\032\031google/protobuf/any.proto\"\250\002\n" +
                        "\032RuleSetNodeInstanceContent\022\031\n\021timer_ins" +
                        "tance_id\030\001 \003(\t\022\034\n\017rule_flow_group\030\002 \001(\tH" +
                        "\000\210\001\001\022~\n\030timer_instance_reference\030\003 \003(\0132\\" +
                        ".org.jbpm.flow.serialization.protobuf.Ru" +
                        "leSetNodeInstanceContent.TimerInstanceRe" +
                        "ferenceEntry\032=\n\033TimerInstanceReferenceEn" +
                        "try\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001B\022\n\020_" +
                        "rule_flow_group\"\351\006\n\033WorkItemNodeInstance" +
                        "Content\022\024\n\014work_item_id\030\001 \001(\t\022\031\n\021timer_i" +
                        "nstance_id\030\002 \003(\t\022/\n\"error_handling_proce" +
                        "ss_instance_id\030\003 \001(\tH\000\210\001\001\022\r\n\005state\030\004 \001(\005" +
                        "\022@\n\010variable\030\005 \003(\0132..org.jbpm.flow.seria" +
                        "lization.protobuf.Variable\022>\n\006result\030\006 \003" +
                        "(\0132..org.jbpm.flow.serialization.protobu" +
                        "f.Variable\022\025\n\010phase_id\030\007 \001(\tH\001\210\001\001\022\031\n\014pha" +
                        "se_status\030\010 \001(\tH\002\210\001\001\022\021\n\004name\030\t \001(\tH\003\210\001\001\022" +
                        "\027\n\nstart_date\030\n \001(\003H\004\210\001\001\022\032\n\rcomplete_dat" +
                        "e\030\013 \001(\003H\005\210\001\001\0221\n\016work_item_data\030\014 \001(\0132\024.g" +
                        "oogle.protobuf.AnyH\006\210\001\001\022\177\n\030timer_instanc" +
                        "e_reference\030\r \003(\0132].org.jbpm.flow.serial" +
                        "ization.protobuf.WorkItemNodeInstanceCon" +
                        "tent.TimerInstanceReferenceEntry\022\031\n\014actu" +
                        "al_owner\030\016 \001(\tH\007\210\001\001\022\"\n\025external_referenc" +
                        "e_id\030\017 \001(\tH\010\210\001\001\032=\n\033TimerInstanceReferenc" +
                        "eEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001B%" +
                        "\n#_error_handling_process_instance_idB\013\n" +
                        "\t_phase_idB\017\n\r_phase_statusB\007\n\005_nameB\r\n\013" +
                        "_start_dateB\020\n\016_complete_dateB\021\n\017_work_i" +
                        "tem_dataB\017\n\r_actual_ownerB\030\n\026_external_r" +
                        "eference_id\"\303\002\n#LambdaSubProcessNodeInst" +
                        "anceContent\022 \n\023process_instance_id\030\001 \001(\t" +
                        "H\000\210\001\001\022\031\n\021timer_instance_id\030\002 \003(\t\022\207\001\n\030tim" +
                        "er_instance_reference\030\003 \003(\0132e.org.jbpm.f" +
                        "low.serialization.protobuf.LambdaSubProc" +
                        "essNodeInstanceContent.TimerInstanceRefe" +
                        "renceEntry\032=\n\033TimerInstanceReferenceEntr" +
                        "y\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001B\026\n\024_pr" +
                        "ocess_instance_id\"\267\002\n\035SubProcessNodeInst" +
                        "anceContent\022 \n\023process_instance_id\030\001 \001(\t" +
                        "H\000\210\001\001\022\031\n\021timer_instance_id\030\002 \003(\t\022\201\001\n\030tim" +
                        "er_instance_reference\030\003 \003(\0132_.org.jbpm.f" +
                        "low.serialization.protobuf.SubProcessNod" +
                        "eInstanceContent.TimerInstanceReferenceE" +
                        "ntry\032=\n\033TimerInstanceReferenceEntry\022\013\n\003k" +
                        "ey\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001B\026\n\024_process_" +
                        "instance_id\"\373\001\n\034MilestoneNodeInstanceCon" +
                        "tent\022\031\n\021timer_instance_id\030\001 \003(\t\022\200\001\n\030time" +
                        "r_instance_reference\030\002 \003(\0132^.org.jbpm.fl" +
                        "ow.serialization.protobuf.MilestoneNodeI" +
                        "nstanceContent.TimerInstanceReferenceEnt" +
                        "ry\032=\n\033TimerInstanceReferenceEntry\022\013\n\003key" +
                        "\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\032\n\030EventNodeIn" +
                        "stanceContent\">\n\030TimerNodeInstanceConten" +
                        "t\022\025\n\010timer_id\030\001 \001(\tH\000\210\001\001B\013\n\t_timer_id\"\310\001" +
                        "\n\027JoinNodeInstanceContent\022Z\n\007trigger\030\001 \003" +
                        "(\0132I.org.jbpm.flow.serialization.protobu" +
                        "f.JoinNodeInstanceContent.JoinTrigger\032Q\n" +
                        "\013JoinTrigger\022\024\n\007node_id\030\001 \001(\tH\000\210\001\001\022\024\n\007co" +
                        "unter\030\002 \001(\005H\001\210\001\001B\n\n\010_node_idB\n\n\010_counter" +
                        "\"\362\001\n\030StateNodeInstanceContent\022\031\n\021timer_i" +
                        "nstance_id\030\001 \003(\t\022|\n\030timer_instance_refer" +
                        "ence\030\002 \003(\0132Z.org.jbpm.flow.serialization" +
                        ".protobuf.StateNodeInstanceContent.Timer" +
                        "InstanceReferenceEntry\032=\n\033TimerInstanceR" +
                        "eferenceEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(" +
                        "\t:\0028\001\"\321\002\n#CompositeContextNodeInstanceCo" +
                        "ntent\022\031\n\021timer_instance_id\030\001 \003(\t\022F\n\007cont" +
                        "ext\030\002 \001(\01325.org.jbpm.flow.serialization." +
                        "protobuf.WorkflowContext\022\207\001\n\030timer_insta" +
                        "nce_reference\030\003 \003(\0132e.org.jbpm.flow.seri" +
                        "alization.protobuf.CompositeContextNodeI" +
                        "nstanceContent.TimerInstanceReferenceEnt" +
                        "ry\032=\n\033TimerInstanceReferenceEntry\022\013\n\003key" +
                        "\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\276\002\n\032DynamicNod" +
                        "eInstanceContent\022\031\n\021timer_instance_id\030\001 " +
                        "\003(\t\022F\n\007context\030\002 \001(\01325.org.jbpm.flow.ser" +
                        "ialization.protobuf.WorkflowContext\022~\n\030t" +
                        "imer_instance_reference\030\003 \003(\0132\\.org.jbpm" +
                        ".flow.serialization.protobuf.DynamicNode" +
                        "InstanceContent.TimerInstanceReferenceEn" +
                        "try\032=\n\033TimerInstanceReferenceEntry\022\013\n\003ke" +
                        "y\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\317\002\n\"EventSubP" +
                        "rocessNodeInstanceContent\022\031\n\021timer_insta" +
                        "nce_id\030\001 \003(\t\022F\n\007context\030\002 \001(\01325.org.jbpm" +
                        ".flow.serialization.protobuf.WorkflowCon" +
                        "text\022\206\001\n\030timer_instance_reference\030\003 \003(\0132" +
                        "d.org.jbpm.flow.serialization.protobuf.E" +
                        "ventSubProcessNodeInstanceContent.TimerI" +
                        "nstanceReferenceEntry\032=\n\033TimerInstanceRe" +
                        "ferenceEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t" +
                        ":\0028\001\"\214\003\n\032ForEachNodeInstanceContent\022\031\n\021t" +
                        "imer_instance_id\030\001 \003(\t\022F\n\007context\030\002 \001(\0132" +
                        "5.org.jbpm.flow.serialization.protobuf.W" +
                        "orkflowContext\022\026\n\016totalInstances\030\003 \001(\005\022\031" +
                        "\n\021executedInstances\030\004 \001(\005\022\031\n\021hasAsyncIns" +
                        "tances\030\005 \001(\010\022~\n\030timer_instance_reference" +
                        "\030\006 \003(\0132\\.org.jbpm.flow.serialization.pro" +
                        "tobuf.ForEachNodeInstanceContent.TimerIn" +
                        "stanceReferenceEntry\032=\n\033TimerInstanceRef" +
                        "erenceEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:" +
                        "\0028\001\"/\n\035AsyncEventNodeInstanceContent\022\016\n\006" +
                        "job_id\030\001 \001(\tB$B\"KogitoNodeInstanceConten" +
                        "tsProtobufb\006proto3"
        };
        descriptor = com.google.protobuf.Descriptors.FileDescriptor
                .internalBuildGeneratedFileFrom(descriptorData,
                        new com.google.protobuf.Descriptors.FileDescriptor[] {
                                org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.getDescriptor(),
                                com.google.protobuf.AnyProto.getDescriptor(),
                        });
        internal_static_org_jbpm_flow_serialization_protobuf_RuleSetNodeInstanceContent_descriptor =
                getDescriptor().getMessageTypes().get(0);
        internal_static_org_jbpm_flow_serialization_protobuf_RuleSetNodeInstanceContent_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_RuleSetNodeInstanceContent_descriptor,
                new java.lang.String[] { "TimerInstanceId", "RuleFlowGroup", "TimerInstanceReference", });
        internal_static_org_jbpm_flow_serialization_protobuf_RuleSetNodeInstanceContent_TimerInstanceReferenceEntry_descriptor =
                internal_static_org_jbpm_flow_serialization_protobuf_RuleSetNodeInstanceContent_descriptor.getNestedTypes().get(0);
        internal_static_org_jbpm_flow_serialization_protobuf_RuleSetNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_RuleSetNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                new java.lang.String[] { "Key", "Value", });
        internal_static_org_jbpm_flow_serialization_protobuf_WorkItemNodeInstanceContent_descriptor =
                getDescriptor().getMessageTypes().get(1);
        internal_static_org_jbpm_flow_serialization_protobuf_WorkItemNodeInstanceContent_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_WorkItemNodeInstanceContent_descriptor,
                new java.lang.String[] { "WorkItemId", "TimerInstanceId", "ErrorHandlingProcessInstanceId", "State", "Variable", "Result", "PhaseId", "PhaseStatus", "Name", "StartDate",
                        "CompleteDate", "WorkItemData", "TimerInstanceReference", "ActualOwner", "ExternalReferenceId", });
        internal_static_org_jbpm_flow_serialization_protobuf_WorkItemNodeInstanceContent_TimerInstanceReferenceEntry_descriptor =
                internal_static_org_jbpm_flow_serialization_protobuf_WorkItemNodeInstanceContent_descriptor.getNestedTypes().get(0);
        internal_static_org_jbpm_flow_serialization_protobuf_WorkItemNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_WorkItemNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                new java.lang.String[] { "Key", "Value", });
        internal_static_org_jbpm_flow_serialization_protobuf_LambdaSubProcessNodeInstanceContent_descriptor =
                getDescriptor().getMessageTypes().get(2);
        internal_static_org_jbpm_flow_serialization_protobuf_LambdaSubProcessNodeInstanceContent_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_LambdaSubProcessNodeInstanceContent_descriptor,
                new java.lang.String[] { "ProcessInstanceId", "TimerInstanceId", "TimerInstanceReference", });
        internal_static_org_jbpm_flow_serialization_protobuf_LambdaSubProcessNodeInstanceContent_TimerInstanceReferenceEntry_descriptor =
                internal_static_org_jbpm_flow_serialization_protobuf_LambdaSubProcessNodeInstanceContent_descriptor.getNestedTypes().get(0);
        internal_static_org_jbpm_flow_serialization_protobuf_LambdaSubProcessNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                        internal_static_org_jbpm_flow_serialization_protobuf_LambdaSubProcessNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                        new java.lang.String[] { "Key", "Value", });
        internal_static_org_jbpm_flow_serialization_protobuf_SubProcessNodeInstanceContent_descriptor =
                getDescriptor().getMessageTypes().get(3);
        internal_static_org_jbpm_flow_serialization_protobuf_SubProcessNodeInstanceContent_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_SubProcessNodeInstanceContent_descriptor,
                new java.lang.String[] { "ProcessInstanceId", "TimerInstanceId", "TimerInstanceReference", });
        internal_static_org_jbpm_flow_serialization_protobuf_SubProcessNodeInstanceContent_TimerInstanceReferenceEntry_descriptor =
                internal_static_org_jbpm_flow_serialization_protobuf_SubProcessNodeInstanceContent_descriptor.getNestedTypes().get(0);
        internal_static_org_jbpm_flow_serialization_protobuf_SubProcessNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                        internal_static_org_jbpm_flow_serialization_protobuf_SubProcessNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                        new java.lang.String[] { "Key", "Value", });
        internal_static_org_jbpm_flow_serialization_protobuf_MilestoneNodeInstanceContent_descriptor =
                getDescriptor().getMessageTypes().get(4);
        internal_static_org_jbpm_flow_serialization_protobuf_MilestoneNodeInstanceContent_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_MilestoneNodeInstanceContent_descriptor,
                new java.lang.String[] { "TimerInstanceId", "TimerInstanceReference", });
        internal_static_org_jbpm_flow_serialization_protobuf_MilestoneNodeInstanceContent_TimerInstanceReferenceEntry_descriptor =
                internal_static_org_jbpm_flow_serialization_protobuf_MilestoneNodeInstanceContent_descriptor.getNestedTypes().get(0);
        internal_static_org_jbpm_flow_serialization_protobuf_MilestoneNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                        internal_static_org_jbpm_flow_serialization_protobuf_MilestoneNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                        new java.lang.String[] { "Key", "Value", });
        internal_static_org_jbpm_flow_serialization_protobuf_EventNodeInstanceContent_descriptor =
                getDescriptor().getMessageTypes().get(5);
        internal_static_org_jbpm_flow_serialization_protobuf_EventNodeInstanceContent_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_EventNodeInstanceContent_descriptor,
                new java.lang.String[] {});
        internal_static_org_jbpm_flow_serialization_protobuf_TimerNodeInstanceContent_descriptor =
                getDescriptor().getMessageTypes().get(6);
        internal_static_org_jbpm_flow_serialization_protobuf_TimerNodeInstanceContent_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_TimerNodeInstanceContent_descriptor,
                new java.lang.String[] { "TimerId", });
        internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_descriptor =
                getDescriptor().getMessageTypes().get(7);
        internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_descriptor,
                new java.lang.String[] { "Trigger", });
        internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_JoinTrigger_descriptor =
                internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_descriptor.getNestedTypes().get(0);
        internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_JoinTrigger_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_JoinNodeInstanceContent_JoinTrigger_descriptor,
                new java.lang.String[] { "NodeId", "Counter", });
        internal_static_org_jbpm_flow_serialization_protobuf_StateNodeInstanceContent_descriptor =
                getDescriptor().getMessageTypes().get(8);
        internal_static_org_jbpm_flow_serialization_protobuf_StateNodeInstanceContent_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_StateNodeInstanceContent_descriptor,
                new java.lang.String[] { "TimerInstanceId", "TimerInstanceReference", });
        internal_static_org_jbpm_flow_serialization_protobuf_StateNodeInstanceContent_TimerInstanceReferenceEntry_descriptor =
                internal_static_org_jbpm_flow_serialization_protobuf_StateNodeInstanceContent_descriptor.getNestedTypes().get(0);
        internal_static_org_jbpm_flow_serialization_protobuf_StateNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_StateNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                new java.lang.String[] { "Key", "Value", });
        internal_static_org_jbpm_flow_serialization_protobuf_CompositeContextNodeInstanceContent_descriptor =
                getDescriptor().getMessageTypes().get(9);
        internal_static_org_jbpm_flow_serialization_protobuf_CompositeContextNodeInstanceContent_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_CompositeContextNodeInstanceContent_descriptor,
                new java.lang.String[] { "TimerInstanceId", "Context", "TimerInstanceReference", });
        internal_static_org_jbpm_flow_serialization_protobuf_CompositeContextNodeInstanceContent_TimerInstanceReferenceEntry_descriptor =
                internal_static_org_jbpm_flow_serialization_protobuf_CompositeContextNodeInstanceContent_descriptor.getNestedTypes().get(0);
        internal_static_org_jbpm_flow_serialization_protobuf_CompositeContextNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                        internal_static_org_jbpm_flow_serialization_protobuf_CompositeContextNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                        new java.lang.String[] { "Key", "Value", });
        internal_static_org_jbpm_flow_serialization_protobuf_DynamicNodeInstanceContent_descriptor =
                getDescriptor().getMessageTypes().get(10);
        internal_static_org_jbpm_flow_serialization_protobuf_DynamicNodeInstanceContent_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_DynamicNodeInstanceContent_descriptor,
                new java.lang.String[] { "TimerInstanceId", "Context", "TimerInstanceReference", });
        internal_static_org_jbpm_flow_serialization_protobuf_DynamicNodeInstanceContent_TimerInstanceReferenceEntry_descriptor =
                internal_static_org_jbpm_flow_serialization_protobuf_DynamicNodeInstanceContent_descriptor.getNestedTypes().get(0);
        internal_static_org_jbpm_flow_serialization_protobuf_DynamicNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_DynamicNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                new java.lang.String[] { "Key", "Value", });
        internal_static_org_jbpm_flow_serialization_protobuf_EventSubProcessNodeInstanceContent_descriptor =
                getDescriptor().getMessageTypes().get(11);
        internal_static_org_jbpm_flow_serialization_protobuf_EventSubProcessNodeInstanceContent_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_EventSubProcessNodeInstanceContent_descriptor,
                new java.lang.String[] { "TimerInstanceId", "Context", "TimerInstanceReference", });
        internal_static_org_jbpm_flow_serialization_protobuf_EventSubProcessNodeInstanceContent_TimerInstanceReferenceEntry_descriptor =
                internal_static_org_jbpm_flow_serialization_protobuf_EventSubProcessNodeInstanceContent_descriptor.getNestedTypes().get(0);
        internal_static_org_jbpm_flow_serialization_protobuf_EventSubProcessNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable =
                new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                        internal_static_org_jbpm_flow_serialization_protobuf_EventSubProcessNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                        new java.lang.String[] { "Key", "Value", });
        internal_static_org_jbpm_flow_serialization_protobuf_ForEachNodeInstanceContent_descriptor =
                getDescriptor().getMessageTypes().get(12);
        internal_static_org_jbpm_flow_serialization_protobuf_ForEachNodeInstanceContent_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_ForEachNodeInstanceContent_descriptor,
                new java.lang.String[] { "TimerInstanceId", "Context", "TotalInstances", "ExecutedInstances", "HasAsyncInstances", "TimerInstanceReference", });
        internal_static_org_jbpm_flow_serialization_protobuf_ForEachNodeInstanceContent_TimerInstanceReferenceEntry_descriptor =
                internal_static_org_jbpm_flow_serialization_protobuf_ForEachNodeInstanceContent_descriptor.getNestedTypes().get(0);
        internal_static_org_jbpm_flow_serialization_protobuf_ForEachNodeInstanceContent_TimerInstanceReferenceEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_ForEachNodeInstanceContent_TimerInstanceReferenceEntry_descriptor,
                new java.lang.String[] { "Key", "Value", });
        internal_static_org_jbpm_flow_serialization_protobuf_AsyncEventNodeInstanceContent_descriptor =
                getDescriptor().getMessageTypes().get(13);
        internal_static_org_jbpm_flow_serialization_protobuf_AsyncEventNodeInstanceContent_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
                internal_static_org_jbpm_flow_serialization_protobuf_AsyncEventNodeInstanceContent_descriptor,
                new java.lang.String[] { "JobId", });
        org.jbpm.flow.serialization.protobuf.KogitoTypesProtobuf.getDescriptor();
        com.google.protobuf.AnyProto.getDescriptor();
    }

    // @@protoc_insertion_point(outer_class_scope)
}
